Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Filter Farbe wählen
#1
Hallo Excel Spezialisten

Ich benötige sehr oft die Funktion nach Farbe zu filtern und will dies über ein Makro lösen.

Für Textinhalt habe ich bereits ein Makro, habe jedoch keine Ahnung wie ich dies auf Farben umschreiben muss.
Könnt Ihr mir helfen ?

Anbei Makro welches ich bereits für Filterung von Text benutze.

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

Vielen Dank im Voraus & l[/size][/font]iebe Grüße
Yvonne
84
Antwortento top
#2
Hallo Excel-Spezialisten

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
Antwortento top
#3
Hallo Yvonne,

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?
Gruß Atilla
Antwortento top
#4
Hallo Yvonne,

nach welche(r)n Farbe(n) suchst Du denn?
Oder sollen einfach alle Farben angezeigt werden, wenn die Spaltenfarbe nicht weiß ist?

Eine Beispieldatei macht vieles einfacher und transparenter.
Wie das geht ,findest Du hier.

Gruß
Max
Antwortento top
#5
@ Attila & Max

Danke für Euer Feedback, Ihr seid echt schnell hier Wink

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

Liebe Grüße
Yvonne
84
Antwortento top
#6
Das mit dem File hat wohl nicht funktioniert - 2ter Versuch


Angehängte Dateien
.xlsm   Test for Forum.xlsm (Größe: 148,01 KB / Downloads: 6)
Antwortento top
#7
Hallo Yvonne,

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-2016)
Antwortento top
#8
Hallo Yvonne,

von mir auch eine Variante:

Code:
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
Gruß Atilla
Antwortento top
#9
@ Schauan & Atilla
Danke für Eure Hilfe!
Liebe Grüße
Yvonne
Liebe Grüße
Yvonne
84
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste