VBA: Gesperrte Blätter entsperren
#1
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
Antworten Top
#2
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ß
Antworten Top
#3
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
Antworten Top
#4
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?
Antworten Top
#5
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Bei mir klappt es mit

Code:
If ActiveSheet.ProtectContents = True Then
Antworten Top


Gehe zu:


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