ich Versuche seit nun mehreren Stunden per VBA Arbeitsblätter mittels .unprotect zu entsperren. Grundsätzliche funktionieren alle Varianten, welche ich getestet habe sofern nur 1 Arbeitsblatt ausgewählt(Selektiert) ist.
Wähle ich aber mehrere Arbeitsblätter aus und starte das Skript kommt spätestens beim 2. abzuarbeitenden Arbeitsblatt ein Error mit Abbruch des Skript.
Grundsätzlich handelt es sich um ein Skript, welches beim Drucken bzw. davor(Workbook_beforePrint) Kopf und Fusszeilen mittels Excel Felder befüllt. Da aber sämtliche Arbeitsblätter mittels PW gesperrt sind muss vor dieser Aktion das Arbeitsblatt entsperrt werden. Das Skript befindet sich unter "DieseArbeitsmappe" im VBA Ordner.
Das Skript ansich funktioniert wie es soll, es ist lediglich das Problem das beim .unprotect bei mehreren selektierten Blättern ein Error kommt.
Das Skript wird also ausgeführt wenn man zum Bsp. auf Seitenansicht klickt, sind allerdings mehrere Blätter gewählt kommt beim 2. gewählten Blatt beim unprotect Vorgang ein Error.
Hat jemand eine funktionierende Lösung um per VBA alle ausgewählten Arbeitsblätter zu entsperren?
Hier einige Codeansätze von mir:
//CODE START
'Alle AktivenBlätter Schutz aufheben
'Dim ws 'As Worksheet >> funktiniert beides nicht ob als Standard oder Worksheet definiert
'For Each ws In Workbooks(ActiveWorkbook.Name).Windows(1).SelectedSheets '>> funktioniert, selektierte Blätter werden abgearbeitet
'Variante 1
'ws.Activate
'ActiveSheet.Unprotect "testo" '>> funktioniert allerdings nur bei einem ausgewählten Blatt, sonst Error bei abarbeiten des zweitem ausgewähltem Blatt
'Variante 2
'Sheets(sh.Name).Unprotect "testo" '>> funktioniert allerdings nur bei einem ausgewählten Blatt, sonst Error bei abarbeiten des zweitem ausgewähltem Blatt
'Variante 3
'ws.Unprotect "testo" '>> funktioniert allerdings nur bei einem ausgewählten Blatt, sonst Error bei abarbeiten des zweitem ausgewähltem Blatt
'Next 'WS '>>funktioniert springt zum nächsten selektierten Blatt
//CODE ENDE
Auch eine Variante für jedes Blatt den Schutz aufzuheben indem das Blatt mittels Hardcode über Sheets("Blattname").unprotect angesprochen wird, wird bei mehreren selektionierten Blättern beim 2. Blatt ein Error erzeugt...
Ich habe viel gelesen und nichts passendes gefunden... hoffe das es eine Lösung gibt.
Vielen Dank.
Liebe Grüsse
Dani