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