Das letzte Clever-Excel-Forum.de - Treffen
fand vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt.

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
to 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
to 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
to 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
to top
#5
@ Attila & Max

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

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


Gehe zu:


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