Wie kann ich in VBA-Excel einen Filter setzen über einer CheckBox?
Hi,
ich suche eine einfachere Lösung für meine UserForm um über CheckBoxen meine Tabelle zu Filtern.
Im grunde möchte ich also, wenn ich einen Wert ankreuze soll dieser Gefiltert werden.
Wie im Beispiel (unten):
FKEP und KKEP angekreuzt = FKEP und KKEP angezeigt.
Nur KKEP angekreuzt = nur KKEP angezeigt
"Wert" der gefiltert werden soll | CheckBox Name
FKEP CBFilterFKEP
KKEP CBFilterKKEP
KfB CBFilterKfB
ausgesch. CBFilterausgesch
beendet CBFilterbeendet
EQ - KfB CBFilterEQKfB
EQ - FKEP CBFilterEQFKEP
Mein momentaner Code schaut wiefolgt aus:
Private Sub CBFilterFKEP_Click()
If CBFilterFKEP = True Then
Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
"FKEP"), Operator:=xlFilterValues
If CBFilterKKEP = True Then
Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
"FKEP", "KKEP"), Operator:=xlFilterValues
End If
End If
End Sub
Private Sub CBFilterKKEP_Click()
If CBFilterKKEP = True Then
Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
"KKEP"), Operator:=xlFilterValues
If CBFilterFKEP = True Then
Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
"KKEP", "FKEP"), Operator:=xlFilterValues
End If
End If
End Sub
Soweit so gut ... nun habe ich aber nur FKEP und KKEP "abgestimmt" ... muss ich nun alle 5 Werte auch "abstimmen" ? Das wird nämlich ein SEHR langer code ... und ich könnte wetten das es in VBA viel leichter geht ...
Hat wer eine Idee von euch?
MfG Tim
1 Antwort
das Beispiel nur mal die 3 Filtern, das kannst Du aber erweitern. Der Code kann dann unverändert bei jedem CheckBox-Click eingetragen werden
Private Sub CheckBox2_Click()
If CBFilterKKEP = True Then suchtext1 = "KKEP"
If CBFilterFKEP = True Then suchtext2 = "FKEP"
If CBFilterKfB = True Then suchtext3 = "KfB"
Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
suchtext1, suchtext2, suchtext3), Operator:=xlFilterValues
End Sub
Eigentlich hätte ich die Suchtexte gerne in einer einzigen Variable gepackt. Ich weiß allerdings nicht, wie man die Verkettung mit den "" in dieser Form abbilden kann. Vielleicht hat jemand anders hier eine Lösung parat.
suchtext ist hier einfach nur eine Variable, kannst auch einen anderen Namen verwenden.
Perfekt :) Vielen Dank!
Funktioniert genau wie ich es haben wollte ;)
Kannte "suchtext" garnicht .. cool wieder was gelernt ;'D
MfG Tim