Registriert seit: 03.11.2022
Version(en): 2016
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
Registriert seit: 28.05.2017
Version(en): 365
21.03.2023, 12:56
(Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2023, 12:57 von EasY.)
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ß
Registriert seit: 03.11.2022
Version(en): 2016
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
Registriert seit: 28.05.2017
Version(en): 365
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?
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
21.03.2023, 13:16
(Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2023, 13:18 von RPP63.)
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)
Registriert seit: 28.05.2017
Version(en): 365
Bei mir klappt es mit
Code:
If ActiveSheet.ProtectContents = True Then