Beitrag aus SmartTools Excel Weekly
Nur die Formeln in Tabellenblättern schützen
Excel 365 2024 2021 2019 2016 2013
FRAGE Vor einiger Zeit hatten Sie in Ihrem Newsletter eine VBA-Lösung vorgestellt, mit der sich alle markierten Tabellenblätter in nur einem Arbeitsschritt mit einem Kennwort schützen lassen. Die Lösung ist fast perfekt für mich. Fast perfekt, weil ich in der Regel nur die Formeln schützen möchte, in anderen Zellen aber Eingaben zulassen möchte. Lässt sich die VBA-Lösung für diese Anwendung abändern?
C. Müller
ANTWORT Am Makrocode müssen Sie gar nichts ändern. Es kommt allein darauf an, wie Sie den Zellschutz in den einzelnen Tabellenblättern anwenden. Denn ein aktivierter Blattschutz betrifft nur die Zellen, deren Inhalte gesperrt sind. Ungesperrte Zellen können auch in einem kennwortgeschützten Tabellenblatt bearbeitet werden.
Standardmäßig sind in einem Tabellenblatt alle Zellen gesperrt. Wenn Sie nur die Formeln schützen wollen, müssen Sie also zuerst die Sperrung im gesamten Tabellenblatt aufheben. Anschließend markieren Sie alle Formelzellen und schalten für diese Zellen die Sperrung ein. Danach macht der Blattschutz genau das, was Sie wollen: die Formelzellen sind geschützt und alle anderen Zellen lassen sich beliebig ändern.
Das ist weniger kompliziert, als Sie vielleicht denken. Hier die Schritte im Detail:
- Öffnen Sie eine Arbeitsmappe und wechseln Sie in ein Tabellenblatt, das Sie mit einem Schutz versehen wollen.
- Markieren Sie alle Zellen des Tabellenblatts, indem Sie in der oberen linken Ecke am Schnittpunkt von Zeilennummern und Spaltenbuchstaben auf die Schaltfläche Alle auswählen klicken.
- Drücken Sie Strg+1, um das Dialogfenster Zellen formatieren zu öffnen.
- Wechseln Sie auf die Registerkarte Schutz.
- Entfernen Sie den Haken aus dem Kontrollkästchen Gesperrt und klicken Sie dann auf Ok.
- Drücken Sie F5, um das Dialogfenster Gehe zu zu öffnen.
- Klicken Sie auf die Schaltfläche Inhalte.
- Aktivieren Sie die Option Formeln und klicken Sie dann auf Ok.
- Öffnen Sie mit Strg+1 erneut das Dialogfenster Zellen formatieren und wechseln Sie wieder auf die Registerkarte Schutz.
- Jetzt aktivieren Sie das Kontrollkästchen Gesperrt. Und wenn Sie nicht möchten, dass der Formeltext in der Bearbeitungsleiste angezeigt wird, aktivieren Sie auch das Kontrollkästchen Ausgeblendet.
- Bestätigen Sie die Schutzoptionen mit Ok.
Dieselben Aktionen wenden Sie auf die anderen Tabellenblätter der Arbeitsmappe an, in denen Sie Formeln vor Bearbeitungen schützen wollen.
Anschließend können Sie unsere VBA-Lösung so einsetzen, wie es in unserem damaligen Tipp beschrieben war: Markieren Sie die zu schützenden Tabellenblätter und starten Sie dann das Makro "ProtectSheets". – Hier noch einmal der VBA-Code:
Sub ProtectSheets()
Dim objSelSheets As Sheets
Dim sh As Object
Set objSelSheets = ActiveWindow.SelectedSheets
objSelSheets(1).Select
For Each sh In objSelSheets
sh.Protect Password:="abc123"
Next sh
objSelSheets.Select
Set sh = Nothing
Set objSelSheets = Nothing
End Sub