Supportnet / Forum / Tabellenkalkulation
Filter auf farbige Zellen
Frage
Guten Tag!
Besteht die Möglichkeit einen Filter so zu generieren, dass z. B. nur alle Zelle mit der Füllfarbe gelb angezeigt werden?
Thanx.
Nina
Antwort 1 von JoeKe
Hallo Nina,
das lässt sich mit VBA realisieren.
Nachfolgender Code blendet alle Zeilen die in dem Bereich G1 bis G100 nicht die Füllfarbe Gelb haben aus.
Sub farbfilter()
Dim zelle As Range
Application.ScreenUpdating = False
For Each zelle In Range("G1:G100")
If zelle.Interior.ColorIndex <> 6 Then
zelle.EntireRow.Hidden = True
End If
Next
End Sub
Den Code kopierst du in ein Standartmodul und weist ihn einer Schaltfläche zu.
Um alle Zeilen wieder sichtbar zumachen benutzt du folgenden Code am besten auch über eine Schaltfläche.
Sub zeilen_einblenden()
Cells.EntireRow.Hidden = False
End Sub
Wenn du eine anderen Bereich oder nach einer anderen Bedngung filtern wills, muss der erste Code entsprechend geändert werden.
Ich hoffe du kommst damit zurecht, sonst melde dich nochmal.
MfG
JöKe
das lässt sich mit VBA realisieren.
Nachfolgender Code blendet alle Zeilen die in dem Bereich G1 bis G100 nicht die Füllfarbe Gelb haben aus.
Sub farbfilter()
Dim zelle As Range
Application.ScreenUpdating = False
For Each zelle In Range("G1:G100")
If zelle.Interior.ColorIndex <> 6 Then
zelle.EntireRow.Hidden = True
End If
Next
End Sub
Den Code kopierst du in ein Standartmodul und weist ihn einer Schaltfläche zu.
Um alle Zeilen wieder sichtbar zumachen benutzt du folgenden Code am besten auch über eine Schaltfläche.
Sub zeilen_einblenden()
Cells.EntireRow.Hidden = False
End Sub
Wenn du eine anderen Bereich oder nach einer anderen Bedngung filtern wills, muss der erste Code entsprechend geändert werden.
Ich hoffe du kommst damit zurecht, sonst melde dich nochmal.
MfG
JöKe
Antwort 2 von heutige_Frage
Funktioniert!!!
Danke!!!
Wo bekomme ich eine "Überstetzung" für den zelle.Interior.ColorIndex, damit ich auch andere Zellen filtern kann?
lg
Tina
Danke!!!
Wo bekomme ich eine "Überstetzung" für den zelle.Interior.ColorIndex, damit ich auch andere Zellen filtern kann?
lg
Tina
Antwort 3 von heutige_Frage
Wie kann ich aus bestehenden Zellen den zelle.Interior.ColorIndex, ermitteln?
Tina
Tina
Antwort 4 von JoeKe
Hallo Tina,
folgender Code erstellt eine Farbtabelle mit den dazu gehörigen Indizes:
Sub Farbtabelle()
Dim i As Byte
For i = 1 To 56
If i <= 14 Then
Cells(1, i) = i
Cells(2, i).Interior.ColorIndex = i
End If
If i > 14 And i <= 28 Then
Cells(4, i - 14) = i
Cells(5, i - 14).Interior.ColorIndex = i
End If
If i > 28 And i <= 42 Then
Cells(7, i - 28) = i
Cells(8, i - 28).Interior.ColorIndex = i
End If
If i > 42 And i <= 56 Then
Cells(10, i - 42) = i
Cells(11, i - 42).Interior.ColorIndex = i
End If
Next
End Sub
Du kannst aber auch alternativ mit den Farbnamen arbeiten. Die Zeile:
If zelle.Interior.ColorIndex <> 6 Then
würde dann für Gelb so aussehen
If zelle.Interior.Color <> vbyellow Then
MfG
JöKe
folgender Code erstellt eine Farbtabelle mit den dazu gehörigen Indizes:
Sub Farbtabelle()
Dim i As Byte
For i = 1 To 56
If i <= 14 Then
Cells(1, i) = i
Cells(2, i).Interior.ColorIndex = i
End If
If i > 14 And i <= 28 Then
Cells(4, i - 14) = i
Cells(5, i - 14).Interior.ColorIndex = i
End If
If i > 28 And i <= 42 Then
Cells(7, i - 28) = i
Cells(8, i - 28).Interior.ColorIndex = i
End If
If i > 42 And i <= 56 Then
Cells(10, i - 42) = i
Cells(11, i - 42).Interior.ColorIndex = i
End If
Next
End Sub
Du kannst aber auch alternativ mit den Farbnamen arbeiten. Die Zeile:
If zelle.Interior.ColorIndex <> 6 Then
würde dann für Gelb so aussehen
If zelle.Interior.Color <> vbyellow Then
MfG
JöKe
Antwort 5 von heutige_Frage
Will ja nicht lästig sein, aber die müssen die Farbnamen auf englisch sein?
Wie heisst z. B. "Helles Türkis" auf englisch.
Sorry, aber ich bin da leider nicht sehr bewandert und sehr, sehr froh über Deine Hilfe.
Werde wohl besser Deinen Code verwenden.
Tina
Wie heisst z. B. "Helles Türkis" auf englisch.
Sorry, aber ich bin da leider nicht sehr bewandert und sehr, sehr froh über Deine Hilfe.
Werde wohl besser Deinen Code verwenden.
Tina
Antwort 6 von JoeKe
Hallo Tina,
Ja die Farben müssen in englisch angegeben werden.
Bei Türkis müsstes du vbCyan angeben.
Wenn du aber mit vielen verschiedenen Farben arbeiten willst würde ich dir doch das ColorIndex Ereignis empfehlen, da es leichter und eindeutiger ist.
Wenn du den letzten Code auf einem leeren Tabellenblatt ausführst erhälst du eine Aufstellung mit allen verfügbaren Farben und den dazugehörigen Index. Die Seite kannst du dann ausdrucken und beim programmieren nutzen.
Mfg JöKe
Ja die Farben müssen in englisch angegeben werden.
Bei Türkis müsstes du vbCyan angeben.
Wenn du aber mit vielen verschiedenen Farben arbeiten willst würde ich dir doch das ColorIndex Ereignis empfehlen, da es leichter und eindeutiger ist.
Wenn du den letzten Code auf einem leeren Tabellenblatt ausführst erhälst du eine Aufstellung mit allen verfügbaren Farben und den dazugehörigen Index. Die Seite kannst du dann ausdrucken und beim programmieren nutzen.
Mfg JöKe
Antwort 7 von heutige_Frage
Habe mich gestern noch ein wenig mit dem von Dir zur Verfügung gestelltem Code beschäftigt.
Musste leider feststellen, dass er nicht immer funktioniert. Ich habe da eine Tabelle mit Formeln --> =WENN(VERGLEICH(A2;A:A;0)=ZEILE();"";1) und diese beinflussen offensichtlich den Code.
Wenn ich die Spalte mit der oben erwähnten Formel lösche, funktioniert der Code, ansonsten hängt sich nach ca. 5 Minuten Excel auf.
Trotzdem vielen lieben Dank!
Tina
Musste leider feststellen, dass er nicht immer funktioniert. Ich habe da eine Tabelle mit Formeln --> =WENN(VERGLEICH(A2;A:A;0)=ZEILE();"";1) und diese beinflussen offensichtlich den Code.
Wenn ich die Spalte mit der oben erwähnten Formel lösche, funktioniert der Code, ansonsten hängt sich nach ca. 5 Minuten Excel auf.
Trotzdem vielen lieben Dank!
Tina
Antwort 8 von JoeKe
Moin Tina,
erstmal vielen Dank für deine Rückmeldung.
Eigentlich dürften Formeln den Code nicht beeinflussen, da lediglich die Zellhintergrundfarbe abgefragt wird.
MfG
JöKe
erstmal vielen Dank für deine Rückmeldung.
Eigentlich dürften Formeln den Code nicht beeinflussen, da lediglich die Zellhintergrundfarbe abgefragt wird.
MfG
JöKe