Clever-Excel-Forum

Normale Version: Fitler zurücksetzen (.ShowAllData) bei bestehendem Blattschutz
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten morgen,

ich habe über die Suchfunktion zwar schon einige Ansätze gefunden aber komme dennoch nicht weiter.

In einer Arbeitsmappe habe ich meherere Arbeitsblätter, so auch Arbeitsblatt "Verkaufszahlen".
Die Arbeitsblätter sind mit dem Blattschutz versehen.

Das Arbeitsblatt "Verkaufszahlen" hat folgende Einstellungen (Häkchen ist gesetzt)
Alle Benutzer dieses Arbeitsblattes dürfen:
- Gesperrte Zellen auswählen
- Nicht gesperrte Zellen auswählen
- Sortieren
- AutoFilter verwenden
- Objekte bearbeiten

Über VBA habe ich u.a. folgendes eingestellt:

Code:
Private Sub Workbook_Open()

Call FilterLoeschen

End Sub

Das dazugehörige Modul lautet:

Code:
Sub FilterLoeschen()

If Sheets("Verkaufszahlen").FilterMode Then
    Sheets("Verkaufszahlen").ShowAllData

    End If

End Sub
Wenn ich nun in der Tabelle in zwei Spalten einen Filter setze, die Datei speichere und schließe um sie dann wiede zu öffnen erhalte ich eine Fehlermeldung mit dem Laufzeitfehler 1004 mit dem Verweis im Debuggermodus auf die Zeile " Sheets("Verkaufszahlen").ShowAllData".

Wenn ich keinen Blattschutz aktiv habe, dann funktioniert das Sub FilterLoeschen() problemlos und ich kann alle Daten sehen.
Sobald der Blattschutz aber aktiv ist klappt das Zurücksetzen der Filter nicht.

Ich hatte jetzt schon Lösungen gesehen, wo man mit .unprotect und .protect arbeitet und das Passwort in das Skript schreiben muss.
Auch habe ich was gefunden, dass man mit .BeforeClose oder .BeforeSave agiert, was grundsätzlich auch eine Möglichkeit wäre.
Ich denke aber auch da wird es nicht klappen wegen dem aktiven Blattschutz.


Vermutlich kommt von euch gleich wieder sehr schnell eine ganz einfache Lösung auf die ich nicht gekommen bin.

Schönen Gruß

Mav
Hi

kann es ja nicht testen. Aber Versuch es mal so.

Code:
If Sheets("Verkaufszahlen").AutoFilterMode Then Sheets("Verkaufszahlen").AutoFilter.ShowAllData
Gruß Elex
Guten Morgen,

vielen Dank für deine Hilfe. Es hat damit geklappt. Schon spannend wenn so eine kleine Änderung im Code die Änderung herbeiführt.

Trotz Blattschutz werden die Filter nun zurückgesetzt und alle Daten angezeigt.