Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fitler zurücksetzen (.ShowAllData) bei bestehendem Blattschutz
#1
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
Antworten Top
#2
Hi

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

Code:
If Sheets("Verkaufszahlen").AutoFilterMode Then Sheets("Verkaufszahlen").AutoFilter.ShowAllData
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Maverick1909
Antworten Top
#3
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.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste