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.

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