Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
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

Blätter via VBA Modul sperren

Blätter via VBA Modul sperren
Philipp
Hallo..
Ich würde gerne zwei Module schreiben: Eines zum sperren der Arbeitsblätter und eines zum freigeben. Diese kann ich dann an verschiedenen Stellen nutzen um z.B. Blätter freizugeben, Zellen auszublenden und dann die Blätter wieder zu sperren.
Meine Subs lauten:

Sub freigeben()
Application.ScreenUpdating = False
Dim Passwort As String
Passwort = "test"
Sheets("Willkommen").Unprotect Passwort
Sheets("Eingabe").Unprotect Passwort
Sheets("Ergebnis").Unprotect Passwort
Application.ScreenUpdating = True
End Sub
und

Sub sperren()
Application.ScreenUpdating = False
Dim Passwort As String
Passwort = "test"
Sheets("Willkommen").Protect Passwort
Sheets("Eingabe").Protect Passwort
Sheets("Ergebnis").Protect Passwort
Application.ScreenUpdating = True
End Sub
Die Erste ("freigeben") funktioniert. Die Zweite ("sperren") hingegen nicht (Laufzeitfehler '1004'). Woran könnte dies liegen?
Vielen Dank schon mal für eure Hilfe!
Philipp

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
geht owT
13.09.2011 14:29:04
Rudi
AW: geht owT
13.09.2011 14:34:01
Philipp
bei mir nicht.. als fehler wird die Zeile
Sheets("Willkommen").Protect Passwort
angegeben.
bei mir gehts auch..owT
13.09.2011 14:40:22
robert
AW: Blätter via VBA Modul sperren
13.09.2011 14:52:52
fcs
Hallo Philipp,
prinzipiell funktionieren die beiden Makros.
Bei dir muss es also irgendwelche Begleitumstände in der Arbeitsmappe geben. Die das Einschalten des Blattschutzes verhindern.
z.B. Arbeitsmappe ist freigegeben
Wird denn außer der Nummer 1004 auch noch ein etwas informativerer Fehlertext ausgegeben?
Gruß
Franz
AW: Blätter via VBA Modul sperren
13.09.2011 17:14:16
Christoph
So gehts bei mir. Screenupdating fehlt natürlich noch, das habe ich separat bei mir in den Routinen drin.

Private Sub protect()
'Workbook und alle Sheets werden geschützt
ActiveWorkbook.protect Password:="q1", Structure:=True, Windows:=True
Dim wSheet As Worksheet
For Each wSheet In Worksheets
wSheet.protect Password:="q1"
Next wSheet
End Sub


Private Sub unprotect()
'Workbook und alle Sheets werden nicht mehr geschützt
ActiveWorkbook.unprotect Password:="q1"
Dim wSheet As Worksheet
For Each wSheet In Worksheets
wSheet.unprotect Password:="q1"
Next wSheet
End Sub

Das sollte noch in "DieseArbeitsmappe" eingefügt werden. Sonst stellt Excel beim neuen öffnen das Fenster nicht maximiert dar.

Private Sub Workbook_Open()
unprotect Password:="q1"
Windows(1).WindowState = xlMaximized
protect Password:="q1"
End Sub

Anzeige
AW: Blätter via VBA Modul sperren
13.09.2011 17:09:46
Christoph
So funktioniert es bei mir.

Private Sub protect()
'Workbook und alle Sheets werden geschützt
ActiveWorkbook.protect Password:="q1", Structure:=True, Windows:=True
Dim wSheet As Worksheet
For Each wSheet In Worksheets
wSheet.protect Password:="q1"
Next wSheet
End Sub


Private Sub unprotect()
'Workbook und alle Sheets werden nicht mehr geschützt
ActiveWorkbook.unprotect Password:="q1"
Dim wSheet As Worksheet
For Each wSheet In Worksheets
wSheet.unprotect Password:="q1"
Next wSheet
End Sub

Um Fehler bzw. Ansichtsfehler beim öffnen zu vermeiden solltest du außerdem noch folgendes Makro in "DieseArbeitsmappe" ablegen. Sonst öffnet das Fenster mit Mappenschutz nur minimiert, ist ein Excel Problem.

Private Sub Workbook_Open()
unprotect Password:="q1"
Windows(1).WindowState = xlMaximized
protect Password:="q1"
End Sub

Das Screenupdating fehlt da natürlich noch, aber das habe ich separat in den Routinen mit drin die die beiden Makros aufrufen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige