22. februar 2014 - 16:16Der er
7 kommentarer og 1 løsning
Betinget formatering i Excel 2007
Under betinget formatering vælger jeg ny regel og herefter "Formater kun celler, der indeholder" Herefter vælger jeg "bestemt tekst" og "der indeholder" Og i feltet herefter er det så muligt at indtaste den tekst, der skal søges efter. I dette felt vil jeg gerne have en cellereference i stedet for en tekst, men det lader sig åbenbart ikke gøre.
Årsagen til mit ønske er, at jeg gerne vil lave denne betingede formatering på et stort celleområde, hvor der i hver celle kan stå flere ting (der er tale om personers initialer, og der kan stå flere initialer i hver celle). Jeg vil gerne have at celler farves røde, når de indeholder en bestemt initial, men det kan skifte, hvilken initial der skal søges efter.
Det jeg gør nu er, at jeg hver gang går ind og retter reglen (taster en ny initial ind), men det er temmelig besværligt, og det ville derfor være meget nemmere, hvis reglen blot kunne "kigge" på en celle, hvor jeg tastede initialen ind.
Ok - her er en model: - initialer indsættes i A1 - Der søger i A2 - A8 (eksempel) - VBA koden anbringes under det relevante Ark (Højreklik / Vis programkode / indsæt VBA-koden
- Kan udføres med Alt+F8 / Afspil "Test"
Sub test() Dim initial As String, nn As String, ræk As Integer Application.ScreenUpdating = False nn = Range("A1")
For ræk = 2 To 8 initialer = Range("A" & ræk) If InStr(initialer, nn) > 0 Then farvRød ræk Else ingenFarve ræk End If Next ræk End Sub Private Sub farvRød(ræk) Range("A" & ræk).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 255 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub Private Sub ingenFarve(ræk) Range("A" & ræk).Select With Selection.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub
Sub test() Dim initial As String, nn As String, ræk As Integer, cc Application.ScreenUpdating = False nn = Range("A1")
ActiveSheet.Range("B3:F15,B18:F29,B32:F41,B44:F50,B55:F60,B63:F68,B75:F80,B83:F88").Select For Each cc In Selection.Cells initialer = cc.Text If InStr(initialer, nn) > 0 Then farvRød cc Else ingenFarve cc End If Next cc End Sub Private Sub farvRød(cc) cc.Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 255 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub Private Sub ingenFarve(cc) cc.Select With Selection.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.