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

Forumthread: Autofilter zurücksetzen mit Makro - Problem

Autofilter zurücksetzen mit Makro - Problem
08.01.2008 14:42:34
Timo
Hallo,
ich habe ein Makro "geschrieben" (naja, davon kann nicht wirklich die Rede sein, aber seis drum), wodurch man den Autofilter wieder zurücksetzen kann, wenn dieser aktiviert ist.
Das funktioniert auch ganz gut, allerdings nur, wenn auch wirklich ein filter aktiviert ist. Wurde nicht mit einem Autofilter sortiert und man aktiviert das Makro, dann gibt es einen Error.
wie kann ich das umgehen? Hier das Makro:

Sub Reset_Autofilter()
With Sheet1
.ShowAllData
End With
End Sub


Vielen Dank!
Timo

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Autofilter zurücksetzen mit Makro - Problem
08.01.2008 14:45:58
Thomas
Hallo Timo

With Sheet1
If .AutoFilterMode Then.ShowAllData
End With


Gruß,
Thomas

AW: Autofilter zurücksetzen mit Makro - Problem
08.01.2008 15:23:00
Timo
Vielen Dank Thomas.
Leider funktioniert das irgendwie nicht. Mache ich was falsch?
Es gibt wieder dasselbe Problem: Wenn ein autofilter gesetzt ist funktioniert es, wenn alle Autofilter nicht gesetzt sind gibt es eine Fehlermeldung.

Anzeige
AW: Autofilter zurücksetzen mit Makro - Problem
08.01.2008 15:24:15
Jan
Hi,
With Sheet1
If .FilterMode Then.ShowAllData
End With
mfg Jan

AW: Autofilter zurücksetzen mit Makro - Problem
08.01.2008 15:37:47
Thomas
OK. Muss man in einer Schleife machen. Dann also:

With ActiveSheet
If .AutoFilterMode Then
For Each af In .AutoFilter.Filters
If af.On Then
.ShowAllData
Exit For
End If
Next
End If
End With


Du musst dann nur noch ActiveSheet mit Sheet1 ersetzen.
Gruß

Anzeige
AW: Autofilter zurücksetzen mit Makro - Problem
08.01.2008 15:52:35
Timo
Vielen Dank euch beiden.
Jetzt klappt es.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Autofilter in Excel mit VBA zurücksetzen


Schritt-für-Schritt-Anleitung

Um den Autofilter in Excel mit VBA zurückzusetzen, kannst du ein einfaches Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf „Einfügen“ und wähle „Modul“, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub Reset_Autofilter()
        With Sheet1
            If .AutoFilterMode Then
                .ShowAllData
            End If
        End With
    End Sub
  4. Schließe den VBA-Editor.

  5. Führe das Makro aus, um alle Filter zurückzusetzen. Du kannst das Makro entweder über das Menü „Entwicklertools“ oder durch Drücken von F5 im VBA-Editor ausführen.


Häufige Fehler und Lösungen

  • Fehler: „ShowAllData-Fehler“
    Wenn du versuchst, das Makro ohne aktivierte Filter auszuführen, erhältst du eine Fehlermeldung. Um dies zu umgehen, stelle sicher, dass der Autofilter aktiviert ist, bevor du .ShowAllData aufrufst.

  • Lösung: Verwende den folgenden Code, um den Fehler zu vermeiden:

    If .AutoFilterMode Then
        .ShowAllData
    End If
  • Fehler: Keine Ergebnisse nach dem Zurücksetzen
    Manchmal kann es vorkommen, dass die Daten nach dem Zurücksetzen nicht angezeigt werden. Stelle sicher, dass deine Daten korrekt gefiltert sind und keine zusätzlichen Filter aktiv sind.


Alternative Methoden

Falls du eine andere Methode bevorzugst, um alle Filter in Excel zurückzusetzen, kannst du auch den folgenden Code verwenden:

Sub Reset_All_Filters()
    Dim af As Filter
    With ActiveSheet
        If .AutoFilterMode Then
            For Each af In .AutoFilter.Filters
                If af.On Then
                    .ShowAllData
                    Exit For
                End If
            Next
        End If
    End With
End Sub

Diese Methode überprüft, ob Filter gesetzt sind, und setzt sie zurück, wenn das der Fall ist.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung des Makros:

  1. Ein Makro, das automatisch beim Öffnen der Datei ausgeführt wird:

    Private Sub Workbook_Open()
        Call Reset_Autofilter
    End Sub
  2. Ein Button in Excel, um das Makro auszuführen:

    • Füge einen Button in dein Arbeitsblatt ein und weise das Makro Reset_Autofilter zu.

Tipps für Profis

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft dir, Fehler frühzeitig zu erkennen.

  • Füge Fehlerbehandlungsroutinen hinzu, um das Makro robuster zu machen:

    On Error Resume Next
    If .AutoFilterMode Then .ShowAllData
    On Error GoTo 0
  • Speichere deine Arbeitsmappe regelmäßig, insbesondere wenn du mit Makros arbeitest, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich alle Filter in Excel zurücksetzen?
Du kannst dies tun, indem du das Makro Reset_Autofilter ausführst, das den Autofilter zurücksetzt, wenn er aktiviert ist.

2. Was passiert, wenn keine Filter gesetzt sind?
Wenn keine Filter gesetzt sind, wird das Makro einfach nichts tun, wenn du es richtig implementierst. Es sollte keinen Fehler auslösen, solange du die Bedingung .AutoFilterMode überprüfst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige