Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mit mehreren Farben filtern

Mit mehreren Farben filtern
20.10.2015 17:06:33
Gregor
Hallo zusammen
Ich möchte eine Tabelle mit vba nach Farben, auch mehrere, filtern. Ich habe dazu eine UserForm mit den 9 möglichen Farben kreiert, die mittels Checkbox ausgewählt werden können und folgenden Code geschrieben:
Private Sub cmdFiltern_Click()
If chkgelb = True Then
Code1 = 255
Code2 = 255
Code3 = 0
ElseIf chkbraun = True Then
Code4 = 250
Code5 = 191
Code6 = 143
ElseIf chkhellgrün = True Then
Code7 = 0
Code8 = 255
Code9 = 0
ElseIf chkdunkelgrün = True Then
Code10 = 0
Code11 = 160
Code12 = 0
ElseIf chkhellblau = True Then
Code13 = 204
Code14 = 236
Code15 = 255
ElseIf chkdunkelblau = True Then
Code16 = 153
Code17 = 51
Code18 = 0
ElseIf chkrot = True Then
Code19 = 255
Code20 = 0
Code21 = 0
ElseIf chkviolett = True Then
Code22 = 255
Code23 = 0
Code24 = 255
ElseIf chkdunkelviolett = True Then
Code25 = 112
Code26 = 48
Code27 = 160
End If
End Sub

Bei der eigentlichen Sortierung komme ich nun nicht mehr weiter. Ist dieser Ansatz richtig und wie heisst der Code zum eigentlichen Filtern. Die Farben sind in den Zellen der Spalte E (von Zeile 6 bis ca. 100).
Vielen Dank und Gruss
Gregor

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit mehreren Farben filtern
20.10.2015 17:49:44
Hajo_Zi
Hallo Gregor,
schreibe die Farben nur auf 3 Variablen, da es nur 3 Sein können.
Ich baue keine Datei nach.
    Dim LoI As Long
For LoI = 6 To 100
Rows(LoI).EntireRow.Hidden = Cells(LoI, 5).Interior.Color  Color  Code22 _
And Cells(LoI, 5).Interior.Color  Color  Code23 And Cells(LoI, 5).Interior. _
Color  Color  Code24
Next LoI

Anzeige
AW: Mit mehreren Farben filtern
21.10.2015 10:10:16
Gregor
Hallo Hajo
Vielen Dank für den wertvollen Ansatz. Ich habe das nun wie folgt gelöst:
Code in UserForm
If chkgelb = True Then
Color1 = 6
End If
If chkbraun = True Then
Color2 = 40
End If
If chkhellgrün = True Then
Color3 = 4
End If
If chkdunkelgrün = True Then
Color4 = 10
End If
If chkhellblau = True Then
Color5 = 24
End If
If chkdunkelblau = True Then
Color6 = 33
End If
If chkrot = True Then
Color7 = 3
End If
If chkviolett = True Then
Color8 = 7
End If
If chkdunkelviolett = True Then
Color9 = 47
End If
Code in Modul
For LoI = 9 To intLastRow
Rows(LoI).EntireRow.Hidden = Cells(LoI, 5).Interior.ColorIndex Color1 _
And Cells(LoI, 5).Interior.ColorIndex Color2 _
And Cells(LoI, 5).Interior.ColorIndex Color3 _
And Cells(LoI, 5).Interior.ColorIndex Color4 _
And Cells(LoI, 5).Interior.ColorIndex Color5 _
And Cells(LoI, 5).Interior.ColorIndex Color6 _
And Cells(LoI, 5).Interior.ColorIndex Color7 _
And Cells(LoI, 5).Interior.ColorIndex Color8 _
And Cells(LoI, 5).Interior.ColorIndex Color9
Next LoI
Vielen Dank und Gruss
Gregor
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Mehrere Farben in Excel filtern


Schritt-für-Schritt-Anleitung

Um in Excel nach mehreren Farben zu filtern, kannst Du VBA (Visual Basic for Applications) nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. UserForm erstellen: Erstelle eine UserForm mit Checkboxen für jede Farbe, die Du filtern möchtest.

  2. Farben definieren: Schreibe den folgenden Code in das UserForm:

    Private Sub cmdFiltern_Click()
       If chkgelb = True Then
           Color1 = 6
       End If
       If chkbraun = True Then
           Color2 = 40
       End If
       If chkhellgrün = True Then
           Color3 = 4
       End If
       ' ... weitere Farben
    End Sub
  3. Filterlogik implementieren: Füge den folgenden Code in ein Modul ein, um die Filterung durchzuführen:

    Dim LoI As Long
    For LoI = 6 To 100
       Rows(LoI).EntireRow.Hidden = Cells(LoI, 5).Interior.ColorIndex <> Color1 And _
                                     Cells(LoI, 5).Interior.ColorIndex <> Color2 And _
                                     Cells(LoI, 5).Interior.ColorIndex <> Color3
    Next LoI
  4. Testen: Führe das Makro aus und überprüfe, ob die entsprechenden Zeilen basierend auf den ausgewählten Farben verborgen werden.


Häufige Fehler und Lösungen

  • Fehler: Zeilen werden nicht verborgen

    • Lösung: Stelle sicher, dass die Farbcodes korrekt sind und die richtigen Zellen im Code referenziert werden.
  • Fehler: UserForm wird nicht angezeigt

    • Lösung: Überprüfe, ob Du das UserForm korrekt aufrufst. Du kannst dies durch einen Button auf einem Arbeitsblatt tun.

Alternative Methoden

Neben der VBA-Methode kannst Du auch die integrierte Filterfunktion von Excel verwenden, um nach Farbe zu filtern:

  1. Markiere die Daten.
  2. Gehe zu "Daten" > "Filtern".
  3. Klicke auf den Dropdown-Pfeil in der Spaltenüberschrift.
  4. Wähle "Nach Farbe filtern" und dann die gewünschte Farbe aus.

Diese Methode eignet sich gut, wenn Du nicht mit VBA arbeiten möchtest.


Praktische Beispiele

  1. Filtern nach zwei Farben: Wenn Du nur Zeilen mit gelben und roten Hintergründen sehen möchtest, kannst Du die Checkboxen für diese beiden Farben aktivieren und den obigen Code anpassen, um diese Farben zu berücksichtigen.

  2. Filtern nach mehreren Spalten: Du kannst den Code erweitern, um mehrere Spalten zu prüfen. Ändere die Cells(LoI, 5) zu Cells(LoI, <deine_spalte>), um die gewünschte Spalte zu filtern.


Tipps für Profis

  • Verwende Farbcodes: Anstatt die Farben manuell zu definieren, kannst Du die RGB-Farbwerte verwenden, um präzise Farbauswahl zu treffen.

  • Optimierung des Codes: Überlege, ob Du die Filterlogik in eine Funktion auslagern kannst, um den Code übersichtlicher und wiederverwendbar zu machen.

  • Datenvalidierung: Stelle sicher, dass die Daten in den Zellen formatiert sind, um unerwartete Ergebnisse zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich Excel nach mehreren Farben gleichzeitig filtern?
Du kannst dies erreichen, indem Du eine UserForm mit mehreren Checkboxen für jede Farbe erstellst und den entsprechenden VBA-Code verwendest, um die Sichtbarkeit der Zeilen basierend auf den ausgewählten Farben zu steuern.

2. Kann ich auch nach Farben filtern, die in mehreren Spalten vorkommen?
Ja, Du kannst den VBA-Code anpassen, um die Farbe in mehreren Spalten zu überprüfen. Ändere einfach die Cells(LoI, <deine_spalte>) Referenzen entsprechend.

3. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden funktionieren in Excel 365 sowie in anderen Versionen, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige