Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1028to1032
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
Blattschutz mit Formatierung
04.12.2008 17:06:00
Stefan
Hallo, ich habe folgende Anforderung: Ich möchte den Blattschutz (fuer alle vorhandenen Blätter) aktivieren. Das klappt auch ganz gut aber ich möchte nun noch die Formatierung zulassen von Zeilen, Zellen und Spalten.
Ich habe mir folgenden Beitrag aus dem Archiv genommen und entsprechend meinen Wünschen erweitert. https://www.herber.de/forum/archiv/820to824/t822437.htm
Nun mein Problem: Der Blattschutz mit Formatierungsmöglichkeit erfolgt zwar, aber mein Kennwort, welches ich über die MsgBox vorgebe, wird nicht zur Entsperrung benötigt. Ein einfaches Extras\Schutz\Blattschutz aufheben... reicht und schon ist das Arbeitsblatt entsperrt.
Ohne die Freigabe zur Spalten/Zellen/Zeilen-Formatierung (brauche ich damit die Größe variabel ist) klappt es.
Hier mein fehlerhafter Code:

Sub BlattSchutz()
' kennwort Makro
' Tastenkombination: Keine
Dim wks As Worksheet
myPwd = Application.InputBox("Passwort eingeben")
myPwd2 = Application.InputBox("Wiederholung")
If myPwd = myPwd2 Then
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:=myPwd
' Bis hier läuft alles
' Zellen formatieren erlauben
' Zellen formatieren erlauben
' Zellen formatieren erlauben
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
Next wks
Else: MsgBox ("Passwort ok")
End If
End Sub


Kann mir jemand sagen was ich da falsch mache!?
Vielen Dank =]

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz mit Formatierung
04.12.2008 17:24:00
tomtom
hi,
machs mal so

Sub BlattSchutz()
' kennwort Makro
' Tastenkombination: Keine
Dim wks As Worksheet
myPwd = Application.InputBox("Passwort eingeben")
myPwd2 = Application.InputBox("Wiederholung")
If myPwd = myPwd2 Then
MsgBox ("Passwort ok")
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:=myPwd
' Bis hier läuft alles
' Zellen formatieren erlauben
' Zellen formatieren erlauben
' Zellen formatieren erlauben
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
Next wks
End If
End Sub


grüße

Anzeige
AW: Blattschutz mit Formatierung
04.12.2008 17:57:57
Stefan
Hallo tomtom,
danke für deine schnelle Antwort.
Ich habe es direkt probiert - und noch das gleiche Ergebnis. Gruß
AW: Blattschutz mit Formatierung
04.12.2008 19:09:48
robert
hi,
ich finde, du musst schon festlegen wie dein passwort lautet
bitte ausprobieren, passwort ist test
gruß

Sub BlattSchutz()
' kennwort Makro
' Tastenkombination: Keine
Dim wks As Worksheet
myPwd = Application.InputBox("Passwort eingeben")
myPwd2 = Application.InputBox("Wiederholung")
If myPwd2 = "test" Then 'myPwd2 Then
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:="test" 'myPwd
' Bis hier läuft alles
' Zellen formatieren erlauben
' Zellen formatieren erlauben
' Zellen formatieren erlauben
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
Next wks
Else: MsgBox ("Passwort falsch")
End If
End Sub


Anzeige
AW: Blattschutz mit Formatierung
04.12.2008 19:38:58
hary
Hallo Stefan
Habe mal was probiert. Mit dem Makro schuetzt Du die Zellen vorm Formatieren. Habe die Hilfe zur Hilfe genommen. Da stand: Objekt.Protect(Passwort, usw) Ich schaetze mal der Aufbau deiner Protect Eigenschaft ist falsch geschrieben. Bin selbst VBA Laie, deshalb nur der Ansatz.

Dim myPwd
Dim myPwd2
Sub BlattSchutz()
' kennwort Makro
' Tastenkombination: Keine
Dim wks As Worksheet
myPwd = Application.InputBox("Passwort eingeben")
myPwd2 = Application.InputBox("Wiederholung")
If myPwd = myPwd2 Then
MsgBox ("Passwort ok")
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:=myPwd
ActiveWorkbook.Protect "ok", AllowFormattingCells = False      'wie siehe oben
Next wks
end if
end sub


Gruss Hary
vieleicht hilfts Dir weiter

Anzeige
AW: Blattschutz mit Formatierung
04.12.2008 21:21:00
Erich
Hallo Stefan,
probier das mal:

Option Explicit            ' Immer zu empfehlen
Sub BlattSchutz()
' kennwort Makro
' Tastenkombination: Keine
Dim myPwd As String, myPwd2 As String
Dim wks As Worksheet
myPwd = Application.InputBox("Passwort eingeben")
myPwd2 = Application.InputBox("Wiederholung")
If myPwd2 = myPwd Then
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:=myPwd, DrawingObjects:=True, _
Contents:=True, Scenarios:=True, AllowFormattingCells:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True
Next wks
Else
MsgBox "Passwort falsch"
End If
End Sub

In deiner alten Version hast du mit wks.Protect Password:=... alle Blätter geschützt, aber ohne zu zugelassenen Aktionen) ,
danach hast du immer wieder für das aktive Blatt (das sich in der Schleife NICHT ändert) Aktionen zugelassen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige