VBA Autofilter erkennen

Hallo zusammen,

gibt es eine Möglichkeit in VBA zu erkennen ob ein Autofilter exisitiert oder nicht?

Mit

Range(„VonSpalte1:BisSpalte2“).Select
Selection.AutoFilter

erschaffe ich ein Autofilter und mit

Selection.AutoFilter

nehme ich diesen Fitler wieder raus.

Aber ich möchte vorher überprüfen ob ein Filter überhaupt exisitert, damit ich Ihn vor Ausführung meines Makros vorher deaktivieren und nachher wieder aktivieren kann…

Danke für jede Hilfe;

PeterPan

Hallo,

If Worksheets("Sheet1").FilterMode = True Then
 MsgBox "Filter mode is on"
Else
 MsgBox "Filter mode is off"
End If

Gruß, Bernd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

moin

Sub bla()

Set w = Worksheets("Tabelle1")
If w.AutoFilterMode Then
 filterisOn = w.AutoFilter.Filters(1).On
End If


End Sub

mit dem
If w.AutoFilterMode
prüfst Du, ob es einen Filter gibt.
wenn ja wird hier geprüft, ob gerade ein Filter gesetzt ist mit:
filterisOn = w.AutoFilter.Filters(1).On
das enthält dann WAHR/FALSCH je nachdem ob er eben aktiv ist oder nicht…

Gruß
Munich

*schmunzel*
ich war schneller - laut Zeit…
Aber in der Reihenfolge steh ich trotzdem oben… :wink:

Lustig *g*

*schmunzel*
ich war schneller - laut Zeit…
Aber in der Reihenfolge steh ich trotzdem oben… :wink:

Lustig *g*

Danke für die schnelle Abhilfe!

Ich werde es Gleich auprobieren!

MfG;
PeterPan

Hallo Munich,

filterisOn ist bei mir immer Falsch (egal ob Filter An oder Aus)?!?
Habe ich da was übersehen? Teste Dein Code mal in einer neuen Tabelle mit Filter (funktioniert leider auch nicht)…

Grüße;
PeterPan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

If Worksheets(„Sheet1“).FilterMode = True Then
MsgBox „Filter mode is on“
Else
MsgBox „Filter mode is off“
End If

Gruß, Bernd

Hallo Bernd,

kurz noch eine Frage:

Jetzt weiß mein Programm ob ein Filter aktiviert ist oder nicht :wink:.
Wie kann ich den Filter nun aufheben (also alles Anzeigen lassen)?.
Mit Selection.Autofilter wird der ganze Filter aufgehoben…
Grüße;
PeterPan

hi,
Selection.AutoFilter Field:=1
cu Micha

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

filterisOn = w.AutoFilter.Filters(1).On

bei mir ging es…

Allerdings ist das Filters(1) der knackpunkt…
Prüft jeweils in der 1. Spalte…

Gruß
Munich

Hallo Micha,
erstmal Danke für die Info.

Mit Selection.AutoFilter Field:=1 hebt es den Filter der ersten Spalte auf. Da ich aber 10 Spalten habe müßte ich wohl
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=3, etc…

eingeben, da ich nicht weiß wo der Filter gesetzt ist oder es gibt eine Funktion die mir dies sagt…
MFG;
PeterPan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

aLles klar, jetzt verstehe ich!
Danke

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hi,
machs einfach so:

Public Sub AF_aufheben()
With Worksheets(1)
If .FilterMode Then .ShowAllData
End With
End Sub

cu Micha

So hab mirnun eine Schleife gebastelt:
Set w = Worksheets(„Tabelle1“)

While i [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]