Manchmal kann es nötig sein, eine Tabelle zur Bearbeitung weiterzugeben und will sicher stellen, dass Formeln nicht versehentlich geändert werden können. Je nachdem, inwiefern fremde Rechte „geschützt“ werden müssen, ist es erforderlich, das Aufheben der Sperre durch ein Kennwort zu unterstützen. (jaja, nicht jeder lässt sich davon abhalten). Bei umfangreichen Tabellen mit mehreren Blättern kann es ganz schnell ganz lästig werden, jedes Blatt einzeln zu schützen und nach Rückgabe wieder zu entsperren. VBA sei Dank, geht das auch mit einem einfachen Makro:
Option Explicit Sub schutz() Dim i As Integer, Blatt As Worksheet Set Blatt = ActiveSheet Dim pw As String pw = InputBox("Bitte Kennwort zum Schützen eingeben", "Blattschutzkennwort", "KENNWORT eingeben") For i = 1 To ActiveWorkbook.Worksheets.Count ActiveWorkbook.Worksheets(i).Activate ActiveSheet.Cells(1, 1).Select ActiveWindow.Zoom = 100 ActiveSheet.Protect Password:=pw Next i Blatt.Select End Sub Sub freigeben() Dim i As Integer, Blatt As Worksheet Set Blatt = ActiveSheet Dim pw As String pw = InputBox("Bitte Kennwort eingeben", "Blattschutzkennwort", "KENNWORT eingeben") For i = 1 To ActiveWorkbook.Worksheets.Count ActiveWorkbook.Worksheets(i).Activate ActiveSheet.Unprotect Password:=pw ActiveSheet.Cells(1, 1).Select ActiveWindow.Zoom = 95 Next i Blatt.Select End Sub
Achtung! Beim Sperren erfolgt keine Passwortprüfung. Das sollte ich mal bei Gelegenheit noch einbauen.
Hinweis: Für meine Zwecke war es wichtig, dass in jedem Blatt der Cursor auf die Zelle A1 (Zeile 10 bzw. 25) und der Zoom auf bestimmte Werte (Zeile 11 bzw. 26) gestellt wird. In Zeile 5 bzw. 19 wird das gerade aktive Blatt ausgelesen und in Zeile 14 bzw. 28 wird nach Abschluss wieder auf das vor Makroausführung aktive Blatt geschaltet. Man könnte jetzt noch die gerade aktive Zelle auslesen und wieder in diese springen, aber das ist für meinen Anwendungsfall absoluter Overkill – mit A1 bin ich voll zufrieden.
Fundstelle für die Grundidee ist ein inzwischen über 9 Jahre alter Beitrag im Chip-Forum.