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

Forumthread: Filter automatisch zurückstellen

Filter automatisch zurückstellen
25.12.2004 13:12:55
w.walter
Hallo Excel-Profi´s
Ich habe eine Tabelle, wo über alle Spalten ein Autofilter gesetzt ist.
So kann ich alle Teilergebnisse auslesen, doch es passiert immer wieder, daß die Datei mit gesetzten Filter gespeichert wird.
Ein anderer Anwender,der nicht darauf achtet und einen anderen Filter setzt, dann stimmt das Ergebnis natürlich nicht und so treten immer wieder Fehler auf.
Ist es möglich, den Filter automatisch beim öffnen der Datei zurückzusetzen, sodaß alle wieder auf stehen.
Grüße w.walter
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
.ShowAllData
ransi
hallo walter
Probier mal so:

Private Sub Workbook_Open()
Worksheets("Tabelle1").ShowAllData
End Sub

ransi
AW: .ShowAllData
25.12.2004 13:54:37
w.walter
Hallo ransi
Habe das Makro mal reingesetzt, doch es klappt so nicht.
Der Filter wird nicht automatisch nach dem öffnen zurückgesetzt.
w.walter
Anzeige
AW: .ShowAllData
ransi
hallo walter
habs grade mal bei mir getestet, läuft einwandfrei.
hast du den namen für "Tabelle1" angepasst?
oder ist da noch irgendein blattschutz gesetzt der die anzeige verhindern könnte?
ransi
AW: .ShowAllData
25.12.2004 14:40:40
w.walter
Du hast recht, es gibt da einen Blattschutz
Damit man den Filter setzen kann muß man auf ein Button drücken der den Blattschutz aufhebt.
Hier das Makro

Sub FilternAuchBeiBlattschutz()
ActiveSheet.Protect userinterfaceonly:=True
ActiveSheet.EnableAutoFilter = True
End Sub

Es gibt dann noch ein Makro, daß alle Dateien die in dem Verzeichnis stehen, ausliest und die Daten in diese Datei übernimmt. Dieses Makro wird auch mit einem Button gestartet. Bevor der Auslesevorgang beginnt, sollen die Filter zurückgestzt werden.
Hoffe es wird nicht zu kompliziert.
viele Grüße, w.walter
Anzeige
ShowAllData
Beate
Hallo Walter,
lösche dein FilternAuchBeiBlattschutz-Makro und füge statt dessen folgenes Makro ins Codefenster "dieseArbeitsmappe":

Sub Workbook_Open()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.Protect userinterfaceonly:=True
ActiveSheet.EnableAutoFilter = True
'alle Filter aufheben
Dim blatt As Worksheet
For Each blatt In ActiveWorkbook.Worksheets
blatt.Activate
If blatt.FilterMode Then blatt.ShowAllData
Next blatt
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Die ersten und letzten drei Zeilen dienen der Makrobeschleunigung und damit es nicht so unruhig abläuft. Dann läuft dein bisheriger Code ab, zusätzliche Buttonaktivierung überflüssig. Dann durchläuft der Code alle Tabellenblätter und hebt eventuell gesetzte Autofilter alle auf.
Gruß,
Beate
Anzeige
AW: ShowAllData
25.12.2004 15:28:27
w.walter
Hallo Beate
Irgendwie schaffe ich es nicht.
Normalerweise bin ich nicht so schwer von Begriff, doch hier verliere ich den Überblick.
Hast du genügend Zeit und Interesse, ich würde dir die Datei zusenden.
Es ist nicht einfach zu beschreiben was die Makros so alles abarbeiten.
Ansonsten läuft alles hervorragend, nur mit diesen Filter passieren immer wieder Fehler.
viele Grüße
w.walter
Anzeige
ShowAllData
Beate
Hallo Walter,
starte jetzt zu einer großen Familienweihnachtsfeier, deshalb länger weg (später Abend).
Solltest du immer noch hängen, hier meine Mail-Adresse: Beate_Schmitz60@web.de
Wenn keine vertraulichen Daten drin sind, kannst du die Datei auch direkt im Forum hochladen und breiteren Helferkreis ansprechen.
Gruß,
Beate
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Automatisches Zurücksetzen von Filtern in Excel


Schritt-für-Schritt-Anleitung

Um die Filter in Excel automatisch zurückzusetzen, wenn die Datei geöffnet wird, kannst Du ein einfaches VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne den Visual Basic-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:

    Private Sub Workbook_Open()
       Dim blatt As Worksheet
       For Each blatt In ThisWorkbook.Worksheets
           blatt.Activate
           If blatt.FilterMode Then
               blatt.ShowAllData
           End If
       Next blatt
    End Sub
  4. Schließe den VBA-Editor:

    • Klicke auf Datei > Schließen und zurück zu Microsoft Excel.
  5. Speichere Deine Arbeitsmappe als Makro-aktivierte Datei:

    • Wähle Datei > Speichern unter und wähle den Dateityp „Excel-Arbeitsmappe mit Makros“ (*.xlsm).

Jetzt wird beim Öffnen der Datei automatisch der Filter zurückgesetzt.


Häufige Fehler und Lösungen

  • Makro funktioniert nicht:

    • Stelle sicher, dass Du das Makro im richtigen Arbeitsblatt (Diese Arbeitsmappe) eingefügt hast und dass du die Datei als .xlsm gespeichert hast.
  • Blattschutz verhindert das Zurücksetzen:

    • Wenn ein Blattschutz aktiv ist, kannst Du den Filter nicht zurücksetzen. Verwende den folgenden Code, um den Schutz zu entfernen:
      ActiveSheet.Unprotect "DeinPasswort"
  • Filter wird nicht zurückgesetzt:

    • Überprüfe, ob der Blattname korrekt ist. Ändere „Tabelle1“ in den Namen Deines Arbeitsblattes, falls notwendig.

Alternative Methoden

  1. Excel-Button für das Zurücksetzen der Filter:

    • Füge einen Button in Deine Arbeitsmappe ein und verlinke ihn zu einem Makro, das alle Filter zurücksetzt. Der Code könnte so aussehen:
      Sub AlleFilterZurücksetzen()
      Dim blatt As Worksheet
      For Each blatt In ThisWorkbook.Worksheets
         If blatt.FilterMode Then
             blatt.ShowAllData
         End If
      Next blatt
      End Sub
  2. Verwendung von Tastenkombinationen:

    • Du kannst die Tastenkombination ALT + D + F + F verwenden, um den Autofilter zu aktivieren und dann STRG + SHIFT + L, um alle Filter aufzuheben.

Praktische Beispiele

  • Beispiel 1: Wenn Du mehrere Filter auf verschiedenen Blättern hast, kannst Du die oben genannten Codes anpassen, um sicherzustellen, dass alle Filter auf jedem Blatt zurückgesetzt werden.

  • Beispiel 2: In einem Arbeitsblatt mit Verkaufsdaten kannst Du ein Makro erstellen, das beim Öffnen der Datei alle Filter zurücksetzt, damit die Benutzer stets alle Daten sehen.


Tipps für Profis

  • Verwenden von Application.ScreenUpdating: Um das Flackern beim Ausführen des Makros zu vermeiden, setze Application.ScreenUpdating = False am Anfang und Application.ScreenUpdating = True am Ende Deines Makros.

  • Makros effizient gestalten: Reduziere die Anzahl der Berechnungen während des Makros, indem Du Application.Calculation = xlCalculationManual verwendest.

  • Verwendung von userinterfaceonly: Wenn Du den Blattschutz aktivierst, stelle sicher, dass Du userinterfaceonly:=True verwendest, damit das Makro weiterhin funktioniert, ohne den Schutz manuell aufheben zu müssen.


FAQ: Häufige Fragen

1. Wie kann ich alle Filter in Excel zurücksetzen?
Du kannst alle Filter zurücksetzen, indem Du das Makro ShowAllData in der Workbook_Open-Ereignisprozedur verwendest.

2. Gibt es eine Tastenkombination, um alle Filter zurückzusetzen?
Ja, die Tastenkombination CTRL + SHIFT + L kann verwendet werden, um alle Filter in Excel aufzuheben.

3. Was tun, wenn das Makro nicht funktioniert?
Überprüfe, dass du die Datei im richtigen Format gespeichert hast (.xlsm) und dass das Makro im richtigen Arbeitsblatt eingefügt wurde. Wenn ein Blattschutz aktiv ist, musst du diesen zuerst aufheben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige