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

Forumthread: prüfen, ob Autofilter eingeschaltet ist

prüfen, ob Autofilter eingeschaltet ist
Pepi
Hallo Excelgemeinde - ich stehe auch wieder mal am Berg...
Ich wollte mit
if ActiveSheet.AutoFilterMode = False then Selection.AutoFilter
prüfen, ob der Autofilter ausgeschaltet ist und dann einschalten.
Selection.Autofilter schaltet den Autofilter ja ein, wenn er ausgeschaltet ist und umgekehrt.
Dies habe ich so auch schon viele Male erfolgreich angewendet.
Doch jetzt geht es nicht (evt. anderer Befehl im Excel 2010?
gibt es einen Befehl, der den Autofilter klar ausschaltet oder einschaltet?
Danke für Eure Unterstützung
Pepi
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: prüfen, ob Autofilter eingeschaltet ist
16.09.2011 14:10:44
Pepi
Nein lieber Wilfried
diese Kommandos kenne ich - ich brauche ein Makro, das feststellt ob der Autofilter gesetzt ist oder nicht
mfg
Pepi
Anzeige
AW: prüfen, ob Autofilter eingeschaltet ist
16.09.2011 11:37:24
fcs
Hallo Pepi,
ob in einem Tabellenblatt der Autofilter aktiv ist püfe ich immer indem ich die Eigenschaft auf True prüfe.
Danach kann man dann die Aktionen steuern.
Selection.Autofilter ist problematisch , wenn die aktive Zelle nicht für den Autofilter geeignet ist, d.h. Excel keinen geeigneten Datenbereich erkennt.
Gruß
Franz

Sub aaAutofilter_Test()
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
If .AutoFilterMode = True Then
If .FilterMode = True Then .ShowAllData
Else
.UsedRange.AutoFilter
End If
End With
End Sub

Anzeige
AW: prüfen, ob Autofilter eingeschaltet ist
16.09.2011 14:54:58
Pepi
Hallo Franz
Danke für den Code
.UsedRange.Autofilter gibt bei mir immer den Laufzeitfehler '1004': Die AutoFilter-Methode des Range-Objektes konnte nicht ausgeführt werden.
Ich habe rausgefunden, dass es an Formatforlage dieser Tabelle liegt - wie kann ich denn eine Formatforlage mit einem Makro löschen? Wird eine Formatvorlage verwendet, gibt AutofilterMode immer True zurück auch wenn der Filter nicht aktiviert ist. Ich könnte die "Tabelle" auch "In Bereich konvertieren" doch leider macht Makrorecorder keinen Code.
Stehe immer noch am Berg - viele Lösungsansätze, doch über klemmt es!!
mfg
Pepi
Anzeige
AW: prüfen, ob Autofilter eingeschaltet ist
16.09.2011 15:43:03
fcs
Hallo Pepi,
das sind neue Infos. Du hast in einem Tabellenblatt eine Tabelle (engl. Listobject) angelegt.
An diesem Objekt gibt es von 2003 nach 2007 in der Tat einige Änderungen.
Den Autofilter einer Tabelle kann man als Objekt auf Nothing prüfen, um festzustellen ob er aktiv ist oder nicht.
Gruß
Franz

Sub AutofilterTabellenObjekt()
Dim wks As Worksheet, oListObject As ListObject
Set wks = ActiveSheet
With wks
If .ListObjects.Count > 0 Then
Set oListObject = .ListObjects(1)
If oListObject.AutoFilter Is Nothing Then
'Autofilter des Listobject aktivieren
oListObject.Range.AutoFilter
End If
End If
End With
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Prüfen, ob der Autofilter in Excel aktiviert ist


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob der Autofilter in Excel aktiviert ist, kannst Du den folgenden VBA-Code verwenden. Dieser prüft, ob der Autofilter im aktiven Arbeitsblatt eingeschaltet ist und aktiviert ihn gegebenenfalls.

Sub CheckAndActivateAutoFilter()
    Dim wks As Worksheet
    Set wks = ActiveSheet

    If wks.AutoFilterMode = False Then
        wks.UsedRange.AutoFilter
    End If
End Sub

Dieser Code prüft, ob AutoFilterMode auf False steht. Falls ja, wird der Autofilter aktiviert. Du kannst diesen Code in einem Modul in Excel einfügen und ausführen.


Häufige Fehler und Lösungen

  1. Laufzeitfehler '1004'

    • Problem: Dieser Fehler tritt auf, wenn UsedRange.AutoFilter in einem Bereich verwendet wird, der nicht geeignet ist.
    • Lösung: Stelle sicher, dass der Bereich über Daten verfügt und dass die aktive Zelle für den Autofilter geeignet ist.
  2. AutoFilterMode zeigt immer True an

    • Problem: Wenn eine Tabelle als ListObject verwendet wird, kann dies zu Verwirrung führen.
    • Lösung: Prüfe, ob der Autofilter für das ListObject aktiv ist, wie im folgenden Beispiel:
Sub CheckListObjectAutoFilter()
    Dim wks As Worksheet
    Dim oListObject As ListObject
    Set wks = ActiveSheet

    If wks.ListObjects.Count > 0 Then
        Set oListObject = wks.ListObjects(1)
        If oListObject.AutoFilter Is Nothing Then
            oListObject.Range.AutoFilter
        End If
    End If
End Sub

Alternative Methoden

Eine alternative Methode besteht darin, den Status des Autofilters mit einer einfachen If-Abfrage zu prüfen. Hier ist ein Beispiel:

Sub CheckAutoFilterStatus()
    If ActiveSheet.AutoFilterMode Then
        MsgBox "Der Autofilter ist aktiv."
    Else
        MsgBox "Der Autofilter ist nicht aktiv. Aktiviere ihn jetzt."
        ActiveSheet.UsedRange.AutoFilter
    End If
End Sub

Diese Methode informiert den Benutzer über den Status des Autofilters und aktiviert ihn bei Bedarf.


Praktische Beispiele

  • Beispiel 1: Autofilter aktivieren
Sub ActivateAutoFilter()
    If ActiveSheet.AutoFilterMode = False Then
        ActiveSheet.UsedRange.AutoFilter
    End If
End Sub
  • Beispiel 2: Filter zurücksetzen und alle Daten anzeigen
Sub ShowAllData()
    If ActiveSheet.FilterMode Then
        ActiveSheet.ShowAllData
    End If
End Sub

Diese Beispiele zeigen, wie Du den Autofilter aktivieren und die gefilterten Daten zurücksetzen kannst.


Tipps für Profis

  • Nutze Selection.AutoFilter, um den Autofilter schnell zu aktivieren oder zu deaktivieren, aber sei vorsichtig, dass die aktive Zelle im richtigen Bereich ist.
  • Verwende If ActiveSheet.FilterMode = True Then um zu prüfen, ob ein Filter gesetzt ist, bevor Du versuchst, alle Daten anzuzeigen.
  • Halte Deine Makros organisiert und dokumentiere sie, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Wie prüfe ich, ob der Autofilter gesetzt ist? Du kannst den Status mit ActiveSheet.AutoFilterMode prüfen. Wenn es True ist, ist der Autofilter aktiviert.

2. Was mache ich, wenn der Autofilter nicht funktioniert? Überprüfe, ob Deine Daten korrekt formatiert sind und ob die aktive Zelle für den Autofilter geeignet ist. Versuche, die Tabelle in einen normalen Datenbereich zu konvertieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige