Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA .unprotect bei mehreren ausgewählten Blättern

VBA .unprotect bei mehreren ausgewählten Blättern
25.01.2013 13:01:31
Daniel
Hallo zusammen,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA .unprotect bei mehreren ausgewählten Blättern
25.01.2013 13:13:22
ing.grohn
Hallo Dani,
probier doch mal folgendes:

Sub SchutzAufheben
Dim ws As Object
For Each ws In Worksheets
'If Left(ws.Name, 2) = "PN" Then
ws.Unprotect
'End If
Next
End Sub

Mit freundlichen Grüßen
Albrecht

AW: VBA .unprotect bei mehreren ausgewählten Blättern
25.01.2013 13:31:13
Daniel
Hallo Albrecht,
wenn ich es richtig lese, würde das Skript alle Blätter den Schutz aufheben? Die Zeile die du ausgeklammert hast, gehe ich davon aus das es was von deinem Skript ist, mit/in dieser If Abfrage würden nur die Blätter, welche mit"PN" beginnen unprotect gemacht?
Könntest du mal kurz Testen ob dein Skript funktioniert wenn du mehr als 1 Arbeitsblatt mittels Maus und CTRL angewählt hast?
Ich werde es später auch mal Testen vermute aber schon vorab das dies nicht gehen wird wenn mehrere Abreitsblätter ausgewählt sind, da es im Grundsatz eigentlich meinem Skript sehr ähnlich ist...
Aber trotzdem schonmal Danke.
Beste Grüsse
Dani

Anzeige
AW: VBA .unprotect bei mehreren ausgewählten Blättern
25.01.2013 13:53:17
ing.grohn
Hallo Dani,
versuch mal:
Sub Test()
Dim ws As Object
For Each ws In Workbooks("Personal-2012.XLS").Windows(1).SelectedSheets
ws.Unprotect
Next
End Sub

mfG
Albrecht

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige