habe da ein Problem wo ich mit meinen bescheidenen VBA-Kenntnissen nicht weiter komme. Ich habe _ eine Arbeitsmappe mit mehreren Spalten in der Autofilter aktiviert sind. Mit Hilfe von CommandButtons setze ich die jeweiligen Filter auf die jeweiligen Kriterien die ich filtern will. Jetzt habe ich zwei Buttons, die auf einen Filter verweisen und dort nach zwei unterschiedlichen Kriterien filtern. Also Button 1 setzt den Autofilter in Spalte 1 auf "DE". Button 2 setzt den Autofilter in Spalte 1 nach "BG". Je nachdem wie die Filter gesetzt sind ändert sich auch die Farbe der jeweiligen Buttons (Grün für Button an und Rot für aus). Unabhängig voneinander funktioniert soweit alles. Jetzt will ich jedoch, dass Button 1 auf Rot gesetzt wird, wenn ich Button 2 drücke und umgekehrt. Die Filter sollen dann direkt auf das jeweilige Kriterium springen. Anbei den Code den ich mir mittlerweile zusammengebastelt habe:
Private Sub CommandButton1_Click()
Dim oWS As Worksheet
Set oWS = ActiveSheet
If ActiveSheet.AutoFilterMode Then
With oWS.AutoFilter
If .Filters(1).On Then
.Range.AutoFilter Field:=1
CommandButton1.BackColor = RGB(255, 0, 0)
Else
.Range.AutoFilter Field:=1, Criteria1:="DE"
CommandButton1.BackColor = RGB(0, 255, 0)
End If
End With
End If
End Sub
Private Sub CommandButton2_Click()
Dim oWS As Worksheet
Set oWS = ActiveSheet
If ActiveSheet.AutoFilterMode Then
With oWS.AutoFilter
If .Filters(1).On Then
.Range.AutoFilter Field:=1
CommandButton2.BackColor = RGB(255, 0, 0)
Else
.Range.AutoFilter Field:=1, Criteria1:="BG"
CommandButton2.BackColor = RGB(0, 255, 0)
End If
End With
End If
End Sub
Das Beispiel ist mit zwei Buttons. Später sollen noch weitere Buttons, die auf den gleichen Filter verweisen, hinzukommen. Ich weiss das ich evtl. ein Toggle Button verwenden könnte. Jedoch will ich das aufgrund der Farbeinstellungen nicht machen und bei den CommandButtons bleiben.
Ich danke im Vorfeld für jede Hilfe.
Gruß Ali