Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: AutoFilter gesetzt per VBA abfragen

AutoFilter gesetzt per VBA abfragen
28.08.2017 14:03:47
ExcelDirk
Wertes Forum,
wie kann ich per VBA prüfen, ob ein AutoFilter gesetzt ist?
Vielen Dank u viele Grüße
Dirk
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoFilter gesetzt per VBA abfragen
28.08.2017 14:37:33
Werner
Hallo Dir,
Public Sub ggg()
If Worksheets("Tabelle2").AutoFilterMode = True Then
MsgBox "Filter an"
Else
MsgBox "Filter aus"
End If
End Sub
Gruß Werner
AW: AutoFilter gesetzt per VBA abfragen
29.08.2017 11:38:56
michlchen
hi.
kann man auch abfragen, welche Werte gesetzt sind? also am besten nen array
0=Äpfel, 1=birnen, 3=bananen, 4=leer
weil dann könnte man bspw. den array mit x-1 werten neu erzeugen und an den autofilter zurück geben, damit er bspw. leere nicht mir anzeigt...
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

AutoFilter in Excel per VBA abfragen und nutzen


Schritt-für-Schritt-Anleitung

Um 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.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Stelle sicher, dass die Tabelle, auf die Du zugreifen möchtest, tatsächlich existiert und dass der AutoFilter für die entsprechende Spalte gesetzt ist.
  • Fehler: "Index außerhalb des gültigen Bereichs"

    • Lösung: Überprüfe, ob Du auf die richtige Filter-Indexnummer zugreifst. Wenn Du mehrere Filter hast, achte darauf, den richtigen Index anzugeben.

Alternative Methoden

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.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den AutoFilter in Excel mit VBA nutzen kannst:

  1. AutoFilter anwenden:

    Worksheets("Tabelle2").Range("A1").AutoFilter Field:=1, Criteria1:="Äpfel"
  2. AutoFilter zurücksetzen:

    Worksheets("Tabelle2").AutoFilterMode = False
  3. 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.


Tipps für Profis

  • Nutze das Immediate Window in der VBA-Umgebung, um Variablen und Filterwerte schnell zu testen.
  • Dokumentiere Deinen Code gut, um die Nachvollziehbarkeit zu erhöhen, besonders wenn Du mehrere Filter verwendest.
  • Experimentiere mit verschiedenen Filterkriterien, um die Flexibilität des AutoFilters zu maximieren.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige