Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Blattschutz mit Formatierung

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 =]

Anzeige

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
Anzeige

Infobox / Tutorial

Blattschutz mit Formatierung in Excel


Schritt-für-Schritt-Anleitung

Um in Excel den Blattschutz mit der Möglichkeit der Formatierung zu aktivieren, kannst du folgendes VBA-Makro verwenden:

Option Explicit
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
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge das obige Makro in ein neues Modul ein.
  3. Schließe den VBA-Editor und gehe zurück zu Excel.
  4. Führe das Makro aus, um den Blattschutz zu aktivieren. Du wirst nach einem Passwort gefragt.

Häufige Fehler und Lösungen

  • Problem: Das Passwort wird nicht benötigt, um den Blattschutz aufzuheben.

    • Lösung: Stelle sicher, dass du das Passwort korrekt in der wks.Protect-Methode angibst. Achte darauf, dass du den Code für jedes Arbeitsblatt korrekt anwendest.
  • Problem: Zellen können trotz aktivem Blattschutz formatiert werden.

    • Lösung: Überprüfe, ob du die richtigen AllowFormatting-Optionen im Code gesetzt hast. Diese sollten in der Protect-Methode angegeben werden.

Alternative Methoden

  1. Excel Optionen: Du kannst auch den Blattschutz über die Excel-Oberfläche aktivieren. Gehe zu Überprüfen > Blatt schützen und aktiviere die gewünschten Optionen für die Formatierung.

  2. VBA ohne Passwort: Wenn du möchtest, dass der Blattschutz ohne Passwort funktioniert, kannst du die Passworteingabe im Makro weglassen.


Praktische Beispiele

  • Excel Blattschutz mit Ausnahmen: Wenn du nur bestimmte Zellen zum Formatieren zulassen möchtest, kannst du die Zellen zuvor entsperren. Wähle die Zellen aus, gehe zu Format > Zellen > Schutz und deaktiviere die Option „Gesperrt“, bevor du den Blattschutz aktivierst.

Tipps für Profis

  • Tastenkombination zum Aufheben des Blattschutzes: Du kannst eine benutzerdefinierte Tastenkombination für das Aufheben des Blattschutzes erstellen, indem du ein weiteres Makro schreibst. Nutze dafür Application.OnKey in deinem VBA-Code.

  • Zellenformatierung aufheben: Wenn du die Zellenformatierung für bestimmte Zellen aufheben möchtest, kannst du dies über die Excel-Oberfläche tun, indem du die Zellen auswählst und die Formatierungen über Start > Zellen > Format > Zellen formatieren zurücksetzt.


FAQ: Häufige Fragen

1. Wie kann ich den Blattschutz mit einer Tastenkombination aufheben? Du kannst einen VBA-Code erstellen, der eine Tastenkombination zum Aufheben des Blattschutzes festlegt. Beispiel:

Sub BlattschutzAufheben()
    Dim myPwd As String
    myPwd = "dein_passwort"
    ActiveSheet.Unprotect Password:=myPwd
End Sub

2. Kann ich die Eingabe in geschützten Zellen erlauben? Ja, du kannst die Eingabe in bestimmten Zellen erlauben, indem du diese Zellen vor dem Aktivieren des Blattschutzes entsperrst.

3. Wie kann ich die Formatierung schützen und gleichzeitig die Eingabe erlauben? Du kannst die Eingabe in geschützten Zellen erlauben, indem du die Option „In geschützten Zellen schreiben“ aktivierst, während du den Blattschutz einrichtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige