Hallo,
ich gehe mal davon aus, dass in Zeile 3 in den Spalten F bis K Befehlsschaltfächen aus den Active-X-Steuerelementen eingefügt sind. Hinterlege dort den folgenden Code (Beispiel für Spalte F):
Private Sub CommandButton1_Click()
Call filter_an_aus(6)
End Sub
Für Spalte G muss in der Klammer eine 7 stehen, für Spalte H eine 8 usw.
Füge den folgenden Code in ein allgemeines Modul ein:
Sub filter_an_aus(lngSpalte As Long)
Dim bFilter As Boolean
With ActiveWorkbook.ActiveSheet
'Status des aktuellen Filters der Spalte in Variable schreiben
bFilter = .AutoFilter.Filters(lngSpalte).On
'prüfen ob im Filtermodus und falls ja, dann alle Daten anzeigen lassen
If .FilterMode Then .ShowAllData
'Falls in anderer Spalte ein Filter gesetzt war
If bFilter = False Then
'dann jetzt Autofilter in aktueller Spalte setzen
.UsedRange.AutoFilter field:=lngSpalte, Criteria1:="x"
End If
End With
End Sub
Ist ein Filter in der Spalte gesetzt, von dem aus das Makro aufgerufen wird, wird der Filter aufgehoben. Ist ein Filter in einer anderen Spalte gesetzt, so wird auf die aktuelle Spalte gefiltert. Gefiltert wird auf ein kleines x, das musst du ggf. auf deine Verhältnisse anpassen.
Gruß
M.O.