Guten Morgen,
ich würde gerne in etlichen Excel 2010 - Arbeitsmappen jeweils alle Arbeitsblätter gleichzeitig mit einem Makro schützen und den Schutz auf Wunsch mit einem zweiten Makro wieder aufheben.
Weiß zufällig jemand eine Lösung, die alle folgenden Optionen erfüllt (diese erscheinen in dieser Reihenfolge ja auch in dem Fenster, wenn man ein einzelnes Blatt schützen will)?:
- Arbeitsblatt und Inhalt gesperrter Zellen schützen
- Kennwort zum Aufheben des Blattschutzes: Am besten wäre, wenn ich das
Passwort eingeben kann, alternativ ohne Passworteingabe und direkt mit dem
Passwort „test“
- Gesperrte Zellen auswählen
- Nicht gesperrte Zellen auswählen
- Zellen formatieren
- Hyperlinks einfügen
- Objekte bearbeiten
- nicht sehr wichtig, aber praktisch wäre, wenn nach Ausführen des Makros wieder das aktuelle Arbeitsblatt erscheint
Vielen Dank für eure Mühe, es wäre eine große Hilfe für mich!
Ich bin leider ein VBA Laie, aber zumindest fand ich im Internet einige Vorschläge :-)
Ich weiß leider nicht, wie ich meine gewünschten Optionen hinzufüge:
BEFEHL FÜR DIE OPTION „OBJEKTE BEARBEITEN“:
DrawingObjects:=False
BEFEHL FÜR DIE OPTION, DASS DANACH WIEDER DAS AKTUELLE ARBEITSBLATT ERSCHEINT:
irgendwann zu Beginn: Set Blatt = ActiveSheet
irgendwann am Ende: Blatt.Select
VORSCHLAG FÜR DAS MAKRO MIT PASSWORTEINGABE
- ZUM SCHÜTZEN:
Option Explicit
Sub Schutz()
Dim i As Long
Dim p1 As String
Dim p2 As String
p1 = InputBox("Bitte Passwort eingeben!", "Passworteingabe")
p2 = InputBox("Bitte Passwort wiederholen!", "Passworteingabe")
If p1 = "" Or p2 = "" Then
MsgBox "Eingaben waren nicht korrekt!" & vbLf & vbLf & "Kein Blattschutz!"
Exit Sub
End If
If p1 <> p2 Then
MsgBox "Eingaben waren nicht korrekt!" & vbLf & vbLf & "Kein Blattschutz!"
Exit Sub
End If
For i = 1 To Sheets.Count
Sheets(i).Protect p1
Next i
MsgBox "alle Blätter wurden geschützt"
- SCHUTZ AUFHEBEN:
Sub Aufheben()
Dim i As Long
Dim p1 As String
Dim p2 As String
p1 = InputBox("Bitte Passwort eingeben!", "Passworteingabe")
If p1 = "" Then
MsgBox "Kein Passwort eingegeben!" & vbLf & vbLf & "Blattschutz wird nicht nicht aufgehoben!"
Exit Sub
End If
On Error GoTo fehler
For i = 1 To Sheets.Count
Sheets(i).Unprotect p1
Next i
MsgBox "alle Blätter wurden entsperrt"
fehler:
If Err Then MsgBox "Falsches Passwort"
End Sub