Ich habe bereits ein Makro, welches Text filtert. Nachdem ich sehr oft nach Farben filtern muss, benötige ich ein Makro mit dem ich schnell nach Farben in der aktuellen Spalte filtern kann.
Hier ist das Makro, welches ich zum Filtern von Text in der aktuellen Spalte verwende:
Sub FilterContains() ' Tastenkombination: Strg+b MyColumn = ActiveCell.Column SearchString = InputBox("Akutelle Spalte enthaelt ..." & Chr(13) & "(UND-Verknpf. mit * angeben)" _ & Chr(13) & Chr(13) & "Current column contains ..." & Chr(13) & "(Use * for AND)", _ "Filter aktive Spalte / Filter active column", SearchString) If SearchString = "" Then Selection.AutoFilter Field:=MyColumn Else Selection.AutoFilter Field:=MyColumn, Criteria1:="=*" & SearchString & "*" End If End Sub
Hoffe Ihr könnt mir helfen.
Liebe Grüße Yvonne
P.S. hatte die Frage schon gesendet, hat aber wohl nicht geklappt das 1ste mal
kannst du mit einer Hilfsspalte leben? Wenn ja, dann teile mit in welcher Spalte sich die Farben befinden und welche Spalte Du als Hilfsspalte nutzen kannst.
Wenn nicht, dann ginge es nicht mit dem Autofilter. Dann müssten die Zeilen ausgeblendet werden.
Dann müsste auch noch geklärt werden um welche Farben es geht. Betrifft es die 56 Farben der Farbpalette?
Danke für Euer Feedback, Ihr seid echt schnell hier
Zu Euren Fragen: "Kannst Du mit einer Hilfsspalte leben?" --> nein, denn ich benötige das Makro für verschiedene Files "Betrifft es die 56 Farben der Farbpalette?" --> nein, denn es werden nicht immer die Standard-Farben verwendet "Nach welche(r)n Farbe(n) suchst Du denn? Oder sollen einfach alle Farben angezeigt werden, wenn die Spaltenfarbe nicht weiß ist?" --> es sollen die verwendeten Farben in der Spalte angezeigt werden, wo sich der Cursor gerade befindet
Anbei File mit reduzierten Spalten und Zeilen, außerdem alle Zellen mit x versehen (da sehr sensible Daten) - aber ein gutes Beispiel wie hier bei uns mit Farben gearbeitet wird
wenn es um eine Filterung anhand der Farbe der gewählten Zelle in der Spalte geht, dann z.B. so. Du bräuchtest dann noch ein Macro, was den Filter generell aufhebt.
Wenn Du einen Auswahldialog aller verwendeten Farben brauchst, würde auch gehen ...
Code:
Sub Farbfilter1() 'Filtert nach Farbe der gewählten Zelle in der Spalte 'Variablendeklaration Dim rngZellen As Range, rngTabelle As Range Dim iColor As Long 'Farbe der aktiven Zelle uebernehmen iColor = ActiveCell.Interior.Color 'Schleife ueber alle Zellen der Spalte 'Bereich begrenzen Set rngTabelle = Range("A5:AX200") 'Filter aufheben rngTabelle.Cells.EntireRow.Hidden = False 'Schleife ueber alle Zellen der Spalte For Each Zellen In rngTabelle.Columns(ActiveCell.Column).Cells 'Wenn die Farbe der Zelle nicht der der aktiven Zelle entspricht, dann If Zellen.Interior.Color <> iColor Then 'Zeile ausblenden Zellen.EntireRow.Hidden = True 'Ende Wenn die Farbe der Zelle nicht der der aktiven Zelle entspricht, dann End If 'Ende Schleife ueber alle Zellen der Spalte Next End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Sub farbe_Filtern() Dim i As Long, lngZ As Long Dim lngFarbe As Long Dim rngR As Range If ActiveCell.Row > 4 Then alle_Zeilen_einblenden 'Prozedur alle_Zeilen_einblenden ausführen lngZ = Cells(Rows.Count, 2).End(xlUp).Row 'letzte belegte Zelle in Spalte 2 ermitteln lngFarbe = ActiveCell.Interior.Color 'Farbe der Aktiven Zelle einlesen For i = 5 To lngZ 'alle zeilen ab Zeile 5 durchlaufen If Cells(i, ActiveCell.Column).Interior.Color <> lngFarbe Then 'wenn Farbe der Zelle <> eingelesene Farbe dann einlesen If rngR Is Nothing Then Set rngR = Rows(i) Else Set rngR = Union(rngR, Rows(i)) End If End If Next i
If Not rngR Is Nothing Then 'wenn Zellen eingelesen dann ausblenden rngR.Rows.Hidden = True Set rngR = Nothing End If End If End Sub
Sub alle_Zeilen_einblenden() Cells.Rows.Hidden = False End Sub