Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1596to1600
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-Problem mit protect / unprotect

VBA-Problem mit protect / unprotect
14.12.2017 15:12:11
Holger
Hallo zusammen,
ich bitte bei folgendem Problem um Hilfe. Ich habe ein Formular entwickelt, bei dem alle Zellen bis auf die Eingabefelder gesperrt sind (Zellschutz + Blattschutz). Damit die Benutzer trotzdem eine Gliederung auf- und einblenden können, war ein kleines VBA-Makro erforderlich, das beim Öffnen automatisch gestartet hat. Hat auch alles geklappt, solange ich keinen PASSWORTSCHUTZ hatte.
Ich habe meine Lösung jetzt um den Passwortschutz ergänzt. Dieser soll beim Öffnen erst entfernt werden, dann werden die nötigen Änderungen vorgenommen, danach wird der Schutz wieder aktiviert. Und das für alle Register. KLAPPT ABER NICHT! Wenn ich die Datei nach Durchlauf des Makros prüfe, kann ich in jedem Register den Schutz OHNE PASSWORTEINGABE aufheben. Was mache ich falsch?
Vielen Dank schonmal für Eure Hilfe!
Holger
Und hier der Code:

Sub Workbook_Open()
Dim i As Long
Dim dummy As String
For i = 1 To Worksheets.Count
dummy = Sheets(i).Name
Sheets(dummy).Activate
ActiveSheet.Unprotect Password:="test"
Sheets(i).Protect userinterfaceonly:=True
Sheets(i).EnableOutlining = True 'für Gliederung
Sheets(i).EnableAutoFilter = True 'für Autofilter
ActiveSheet.Protect Password:="test"
Next i
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Problem mit protect / unprotect
14.12.2017 15:49:12
STeve
Hi Holger..........so?
Sub Workbook_Open()
Dim i As Long
Dim dummy As String
For i = 1 To Worksheets.Count
dummy = Sheets(i).Name
Sheets(dummy).Activate
ActiveSheet.Unprotect Password:="test"
Sheets(i).EnableOutlining = True 'für Gliederung
Sheets(i).EnableAutoFilter = True 'für Autofilter
Sheets(i).Protect Password:="test", UserInterfaceOnly:=True
Next i
End Sub

AW: VBA-Problem mit protect / unprotect
14.12.2017 17:49:03
Holger
Hallo STeve,
super, ja, das war es. Das userinterfaceonly muss als Option beim protect-Befehl rein. Klappt jetzt! Vielen Dank für die schnelle Hilfe!
Viele Grüße, Holger
Anzeige
AW: VBA-Problem mit protect / unprotect
14.12.2017 20:27:40
Luschi
Hallo STeve,
dieses Konstrukt

For i = 1 To Worksheets.Count
dummy = Sheets(i).Name
kann mächtig in die Hose gehen, sobald noch andere Tabellenblatttypen (Diagrammblatt, Makroblatt usw.)
mit im Spiel sind. Dann ist der Worksheet-Index und der Sheet-Index nicht das gleiche.
Deshalb so:

Dim ws as Worksheet
For Each ws in Thisworkbook.Worksheets
ws.Activate
'bzw. gleich
ws.Protect ...
Gruß von Luschi
aus klein-Paris
AW: VBA-Problem mit protect / unprotect
15.12.2017 10:23:15
STeve
Hi Luschi...Danke für deinen Beitrag/Unterstützung. Saubere Referenzierung wie von dir angegeben ist natürlich perfekt.
@ Holger....solltest auf alle Fälle so umschreiben.
Mfg STeve
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige