Clever-Excel-Forum

Normale Version: Gezielte Änderung des Interior.ColorIndex
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Ja, für dieses (praxisfremde) Beispiel hast Du natürlich Recht.
Bis zu meiner Antwort #6 musste ich von einer "normalen" Tabelle ausgehen.
Meine Arbeitstabellen haben sämtlich Überschriften.
Insofern sehe mein Intersect()-Beispiel als praxisgerechte Variante, um die Überschrift auszuschließen.

Gruß Ralf
@Hallo Andre,

also ich weiß nicht wie du deinen Code gemeint hast.

'Zelleinfärbung
Range("A1:A5").Interior.ColorIndex = 10 'Zum Test
'doch  mit
Range("A1:A10").Interior.ColorIndex = Range("A1:A11").Interior.ColorIndex + 5 * ((Range("a1").Interior.ColorIndex <> -4142) * -1)
gibt es keine selektive Auswahl und die Zelleinfärbungen verschwinden komplett.
Hallöchen,

Du hattest am Anfang geschrieben, dass Du nur die Zellen in den Colorindex 20 umfärben willst, die schon mit dem Colorindex 15 gefärbt sind.

Mein Code zeigt ein Prinzip, wie man das angehen kann. Allerdings weiß ich nicht, wieso das erst funktioniert hat und heute nicht. Ich habe das paar mal durchlaufen lassen weil ich mich anfangs selber gewundert hatte.

Hier mal eine Variante mit Schleife, außer der Wertung Smile :
Sub test2()
Dim iCnt%
Range("A1:A10").Interior.ColorIndex = xlNone
Range("A1:A5").Interior.ColorIndex = 15
For iCnt = 1 To 10
Cells(iCnt, 1).Interior.ColorIndex = Cells(iCnt, 1).Interior.ColorIndex + 5 * ((Cells(iCnt, 1).Interior.ColorIndex = 15) * -1)
Next
End Sub
Damit würde jede Zelle einzeln gefärbt. Gibt aber besseres, wie im Thread schon zu lesen war - Filtern nach Farbe und dann die sichtbaren ändern.

Hier mal das mit dem Farbfilter in der "intelligenten" Tabelle. Ich habe zum Test eine Tabelle im Bereich A1:B6 erstellt, mit Überschriften.

Code:
Sub test()
'Zellen einfaerben
Cells(3, 1).Interior.ColorIndex = 15
Cells(5, 1).Interior.ColorIndex = 15
'Mit der Tabelle 1
With ActiveSheet.ListObjects("Tabelle1")
    'Filter aktivieren
    .Range.AutoFilter
    'nach Farbe 15 filtern
    .Range.AutoFilter Field:=1, Criteria1:=RGB(192, 192, 192), Operator:=xlFilterCellColor
    'alle sichtbaren Zellen färben - Überschrift wird nicht beruecksichtigt
    .DataBodyRange.SpecialCells(xlCellTypeVisible).Interior.ColorIndex = 20
    'Filter deaktivieren
    .Range.AutoFilter
'Ende Mit der Tabelle 1
End With
End Sub
Seiten: 1 2