Clever-Excel-Forum

Normale Version: VBA: Gesperrte Blätter entsperren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin liebe Mitglieder,

in einer Tabelle werden Blätter hin und wieder per Hand gesperrt, um diese vor unberechtigter Bearbeitung zu schützen, dies kann allerdings variieren. Gibt es mittels Code die Möglichkeit alle Blätter die gesperrt wurden zu entsperren, ein Makro laufen zu lassen und diese dann wieder zu sperren?

Mir ist natürlich bewusst, dass es die generelle Möglichkeit gibt, allerdings bin ich mir nicht sicher, ob man dies so verbinden kann.

Ich freue mich auf Rückmeldungen!


Beste Grüße
Hi

Code:
Dim Sheet As Worksheet
For Each Sheet In ActiveWorkbook.Worksheets
Sheet.unprotect "PW"
Next Sheet

meinst du sowas?
Am Ende deines Makros dann "Sheet.Unprotect" mit "Sheet.Protect" ersetzen.

Gruß
Hallo EasY,

werden mit deinem Code nicht alle Tabellenblätter entsperrt und anschließend wieder gesperrt? Mein Ziel ist es lediglich die Blätter zu entsperren und anschließend wieder zu sperren, die vorher schon gesperrt waren!

Vielleicht verstehe ich deinen Code aber auch falsch! :)


VG
Ja richtig, er entsperrt und sperrt alle Blätter.

Wenn ich dich richtig verstehe, könntest du ansonsten auch eine If-Abfrage vor deinem Makro setzen und damit abfragen, ob das Blatt geschützt ist. Das Ergebnis in eine Variable speichern und dann am Ende vor dem Setzen des Blattschutzes die Variable fragen, ob vorher ein Schutz bestand.

Was macht dein Makro denn genau? Geht das sowieso jedes Blatt einzeln durch? Dann wäre das mit der If-Anweisung vmtl gut umzusetzen. Die Passwörter der Blätter sind dir aber bekannt und für jedes Blatt gleich?
Bin am Phone, deshalb ungetestet:
Prüfe in der Schleife vorab die Worksheet.ProtectionMode-Eigenschaft
(googlen)

Oder man setzt im Open die Protect-Methode per UserinterfaceOnly:=True

Gruß Ralf
Bei mir klappt es mit

Code:
If ActiveSheet.ProtectContents = True Then