Herbers Excel-Forum - das Archiv

Farben in einer Spalte vergleichen

Bild

Betrifft: Farben in einer Spalte vergleichen
von: Bernd

Geschrieben am: 12.02.2005 20:28:00
Liebe Excelfreunde,
ich suche schon verzweifelt in den Archiven, habe aber nichts passendes gefunden. Vor ein paar Tagen habe ich ein paar Tipps bekommen, konnte aber nichts davon umsetzen. Vielleicht kann mir jemand helfen. Ich möchte dass in einem definierten Bereich jede Zelle in einer Spalte nach dem Farbindex in der Weise verglichen wird, ob in dieser Spalte noch einmal der gleiche Farbwert vorkommt, wenn ja, dann soll die Spalte markiert wird und wenn nein, dann soll die nächste Spalte untersucht werden.
Bild

Betrifft: AW: Farben in einer Spalte vergleichen
von: Josef Ehrensberger

Geschrieben am: 12.02.2005 20:37:28
Hallo Bernd!
Vielleicht so!
Sub vergleichSpalteFarbe()
Dim iCol As Integer
Dim lRow As Long, lastRow As Long
Dim tmp As String
lastRow = 1000 'lezte Zeile die durchsucht wird
For iCol = 1 To 256
For lRow = 1 To lastRow
If InStr(1, tmp, Cells(lRow, iCol).Interior.ColorIndex) > 0 Then
Range(Cells(1, iCol), Cells(lastRow, iCol)).Select
Exit Sub
End If
If Cells(lRow, iCol).Interior.ColorIndex <> xlNone Then
tmp = tmp & Cells(lRow, iCol).Interior.ColorIndex
End If
Next
Next
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: Korrektur!
von: Josef Ehrensberger

Geschrieben am: 12.02.2005 20:38:40
Hallo Bernd!
Kleine Korrektur!
Sub vergleichSpalteFarbe()
Dim iCol As Integer
Dim lRow As Long, lastRow As Long
Dim tmp As String
lastRow = 1000 'lezte Zeile die durchsucht wird
For iCol = 1 To 256
For lRow = 1 To lastRow
If InStr(1, tmp, Cells(lRow, iCol).Interior.ColorIndex) > 0 Then
Range(Cells(1, iCol), Cells(lastRow, iCol)).Select
Exit Sub
End If
If Cells(lRow, iCol).Interior.ColorIndex <> xlNone Then
tmp = tmp & Cells(lRow, iCol).Interior.ColorIndex
End If
Next
tmp = vbNullString
Next
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Korrektur!
von: Bernd
Geschrieben am: 12.02.2005 20:48:12
Liieber Sepp,
zuerstmal vielen Dank für Deinen schnellen Support, aber das Makro läuft die Spalten nicht durch, egal ob in der Spalte doppelte Farben sind oder nicht ?
Woran kann es liegen ?
Bild

Betrifft: AW: Korrektur!
von: Josef Ehrensberger

Geschrieben am: 12.02.2005 20:55:15
Hallo Bernd!
Also der Code läuft sicher.
Die Farben sind aber schon mit der Hand formatiert?
Oder vielleicht mit bedingter Formatierung?
Wo hast du den Code den hinkopiert?

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Korrektur!
von: Bernd

Geschrieben am: 12.02.2005 21:01:21
Die Farben entsprechen den 56 Farben, die Excel als Füllung (genauer von Index 3 - Index 53)anbietet. Also nichts mit bedingter Formatierung.
Kopiert habe ich den Code in ein Modul. Das Makro markiert beim Ablauf genau die ersten zwei Spalten unabhängig ob gleiche Farben enthalten sind oder nicht. Versuche Deinen Code zu entschlüsseln, aber soweit reichen meine Kenntniss in VBA nicht.
Danke für Deine Hilfe!
Bild

Betrifft: AW: Korrektur!
von: Josef Ehrensberger

Geschrieben am: 12.02.2005 21:07:57
Hallo Bernd!
Ich hab's gerade nochmal probiert, sogar mit verbundenen Zellen, und
es läuft bei mir ohne Probleme!
Der Code ist nicht schwer zu verstehen.
Er durchläuft in jeder Spalte die Zeilen von 1 bis "lastrow" und
schreibt den Farbwert der Füllung in einen String.
Der String wird mit "Instr" durchsucht, ob der Farbwert der gerade
durchlaufenen Zelle schon vorhanden ist. Wenn ja, dann wird die
Spalte markiert und das Makro beendet!

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Korrektur!
von: Bernd

Geschrieben am: 12.02.2005 21:23:06
Stimmt, ich habe es an einer neuen Tabelle ausprobiert und es funktioniert bestens, genauso wie ich es wollte. Jetzt muss ich aber schauen, wieso es an meiner bisherigen Datei nicht funktioniert. Ich habe etliche Hintergrundprozesse laufen (Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) die jetzt entrümpeln werden. Ich denke das ich den Fehler finden werde.
Nochmals vielen Dank für Deine schnelle Hilfe. Ich bin begeistert über das professionelle Know How das einem in kürzester Zeit hier angeboten wird.
Einen schönen Abend wünsche ich Dir noch!
Ciao
Bernd
 Bild
Excel-Beispiele zum Thema "Farben in einer Spalte vergleichen"
Zellinnenfarben über VBA festlegen Ändern von Chart-Farben in Abhängigkeit der Daten
Tabelle nach Farben sortieren Artikel mit den in einem Farbindex hinterlegten Farben markieren
Shapes in Abhängigkeit von Zellwerten färben Vorkommen von Zahlenreihen in Spalten
Funktion ANZAHL2 ohne ausgeblendete Spalten Spaltenbreite anpassen
Spalten einer Mehrbereichsauswahl ausblenden. Spaltennamen bestimmen