wie kann ich per VBA prüfen, ob ein AutoFilter gesetzt ist?
Vielen Dank u viele Grüße
Dirk
Public Sub ggg()
If Worksheets("Tabelle2").AutoFilterMode = True Then
MsgBox "Filter an"
Else
MsgBox "Filter aus"
End If
End Sub
Gruß WernerUm zu prüfen, ob ein AutoFilter in Excel gesetzt ist, kannst Du den folgenden VBA-Code verwenden:
Public Sub ggg()
If Worksheets("Tabelle2").AutoFilterMode = True Then
MsgBox "Filter an"
Else
MsgBox "Filter aus"
End If
End Sub
Dieser Code überprüft, ob der AutoFilter auf "Tabelle2" aktiviert ist. Wenn der Filter gesetzt ist, wird eine Nachricht angezeigt, die bestätigt, dass der Filter aktiv ist. Ansonsten wird angezeigt, dass der Filter nicht aktiv ist.
Um zu prüfen, welche Filterwerte gesetzt sind, kannst Du ein Array verwenden. Hier ein Beispiel:
Public Sub FilterWerte()
Dim filterArray() As Variant
Dim i As Long
With Worksheets("Tabelle2").AutoFilter
If .Filters(1).On Then
ReDim filterArray(0 To .Filters(1).Criteria1.Count - 1)
For i = LBound(filterArray) To UBound(filterArray)
filterArray(i) = .Filters(1).Criteria1(i + 1)
Next i
End If
End With
' Array mit Werten anzeigen
MsgBox Join(filterArray, ", ")
End Sub
In diesem Code wird geprüft, ob der erste Filter gesetzt ist, und die gesetzten Werte werden in einem Array gespeichert.
Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"
Fehler: "Index außerhalb des gültigen Bereichs"
Eine weitere Möglichkeit, um zu prüfen, ob ein Filter gesetzt ist, ist die Verwendung der AutoFilter.Filters-Eigenschaft. Hier ist ein Beispiel:
Public Sub CheckAutoFilter()
Dim ws As Worksheet
Set ws = Worksheets("Tabelle2")
If ws.AutoFilter.Filters.Count > 0 Then
MsgBox "Mindestens ein Filter ist gesetzt."
Else
MsgBox "Keine Filter gesetzt."
End If
End Sub
Diese Methode gibt Dir einen schnellen Überblick darüber, ob Filter in der Tabelle aktiv sind.
Hier sind einige praktische Beispiele, wie Du den AutoFilter in Excel mit VBA nutzen kannst:
AutoFilter anwenden:
Worksheets("Tabelle2").Range("A1").AutoFilter Field:=1, Criteria1:="Äpfel"
AutoFilter zurücksetzen:
Worksheets("Tabelle2").AutoFilterMode = False
Filter entfernen:
If Worksheets("Tabelle2").AutoFilterMode Then
Worksheets("Tabelle2").AutoFilterMode = False
End If
Diese Beispiele zeigen, wie Du den Excel VBA AutoFilter effektiv nutzen kannst.
1. Wie kann ich in Excel VBA prüfen, ob ein Filter gesetzt ist?
Du kannst die AutoFilterMode-Eigenschaft verwenden, um zu überprüfen, ob ein AutoFilter aktiv ist.
2. Kann ich mehrere Filter gleichzeitig prüfen?
Ja, Du kannst die Filters-Eigenschaft verwenden, um alle aktiven Filter in einer Tabelle zu überprüfen und ihre Werte abzufragen.
3. Welche Excel-Version benötige ich für die Nutzung von VBA? Die VBA-Funktionalitäten sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.