Mit mehreren Farben filtern

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Mit mehreren Farben filtern
von: Gregor
Geschrieben am: 20.10.2015 17:06:33

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

Bild

Betrifft: AW: Mit mehreren Farben filtern
von: Hajo_Zi
Geschrieben am: 20.10.2015 17:49:44
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


Bild

Betrifft: AW: Mit mehreren Farben filtern
von: Gregor
Geschrieben am: 21.10.2015 10:10:16
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Mit mehreren Farben filtern"