Hier ein Code, der wechselseitig die gleichen Zellen färbt:
Sub srtDoubleMark()
Dim I As Long
Dim J As Long
Dim dblColorFlipFlop As Long
dblColorFlipFlop = 2 'vorbelegen des FlipFlops
' von Zelle A1 bis Zelle A (bis genutztes Maximum)
For I = 1 To ActiveSheet.Range("A:A").SpecialCells(xlCellTypeLastCell).Row
'wenn Zell emit nachfolgender Zelle gleich, dann
If Cells(I, 1) = Cells(I + 1, 1) Then
'Länge des Bereiches vorfestlegen
J = 2
' FlipFlop schalten
dblColorFlipFlop = 3 - dblColorFlipFlop
' Solange wie die nachfolgende Zelle immer noch gleich ist
Do While Cells(I + J) = Cells(I, 1)
'Den Bereich der Gleichen erweitern
J = J + 1
Loop
' Nun färben, je nach Stand des FlipFlop
With ActiveSheet
If dblColorFlipFlop = 1 Then
.Range(Cells(I, 1), Cells(I + J - 1, 1)).Interior.Color = RGB(171, 171, 171)
Else
.Range(Cells(I, 1), Cells(I + J - 1, 1)).Interior.Color = RGB(140, 140, 140)
End If
End With
End If
Next I
End Sub
Achtung, bis Excel 2003 kann man bei RGB nur bestimmte Werte benutzen. Erst ab Excel 2010 ist alles möglich.
Statt
Interior.Color = RGB( …) kann man auch sagen
Interior.Colorindex = 16
Ganzzahlig, von 1 bis 57 möglich.
Zum Ermitteln der möglichen Farben noch zwei Codes:
Sub srtFarbTest1()
Dim I As Integer
For I = 255 To 5 Step -1
Cells(256 - I, 1) = I
Cells(256 - I, 2).Interior.Color = RGB(I, I, I)
Next I
End Sub
Und Code drei
Sub srtFarbTest2()
Dim I As Integer
For I = 1 To 57
Cells(I, 3) = I
Cells(I, 4).Interior.ColorIndex = I
Next I
End Sub
Hoffe es hilft