Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
564to568
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
564to568
564to568
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Farben in einer Spalte vergleichen

Farben in einer Spalte vergleichen
12.02.2005 20:28:00
Bernd
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.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farben in einer Spalte vergleichen
12.02.2005 20:37:28
Josef
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!
Anzeige
Korrektur!
12.02.2005 20:38:40
Josef
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!
Anzeige
AW: Korrektur!
12.02.2005 20:48:12
Bernd
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 ?
AW: Korrektur!
12.02.2005 20:55:15
Josef
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!
AW: Korrektur!
12.02.2005 21:01:21
Bernd
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!
Anzeige
AW: Korrektur!
12.02.2005 21:07:57
Josef
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!
AW: Korrektur!
12.02.2005 21:23:06
Bernd
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
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige