Supportnet / Forum / Tabellenkalkulation
Zellenschutz - Blattsperre
Frage
Hallo,
ich habe eine Tabelle mit etliche Querverweisen und komplexen Formeln endlich soweit wie ich sie haben möchte.
Da ich diese Tabelle auch weitergeben möchte, ist mir daran gelegen, dass die Tabelle nicht zerstört wird. Deshalb habe ich über Format-Zellen-Schutz sämtliche Zellen freigegeben, in denen Eintragungen vorgenommen werden dürfen. Soweit so gut.
Zusätzlich habe ich für eine Zeile eine Gruppierung erstellt, die nach Eingabe von benötigten Daten geschlossen werden soll, um danach das Blatt auszudrucken. Wenn ich jedoch über Extras-Schutz-Blattschutz (oder auch eine der beiden anderen Möglichkeiten) die Tabelle geschützt habe, verweigert Excel die Möglichkeit die Gruppierung zu öffnen oder zu schließen.
Hat jemand eine Idee, wie man diese Problematik umgehen kann. Ich verwende übrigens Excel 2000.
Für Eure Bemühungen schon mal besten Dank im voraus.
Schnuffi
Antwort 1 von Nepumuk
Hallo Schnuffi,
Rechtklick auf das Excelicon neben "Datei" - Code anzeigen und folgendes Makro in das sich öffnende Editorfenster kopieren:
Den Tabellennamen und das Kennwort noch anpassen. Fenster mit Alt+q wieder schließen. Mappe speichern, schließen und wieder öffnen, das war's.
Gruß
Nepumuk
Rechtklick auf das Excelicon neben "Datei" - Code anzeigen und folgendes Makro in das sich öffnende Editorfenster kopieren:
Private Sub Workbook_Open()
With Worksheets("Tabelle1")
.Protect Password:="Dein Kennwort", UserInterfaceOnly:=True
.EnableOutlining = True
End With
End Sub
Den Tabellennamen und das Kennwort noch anpassen. Fenster mit Alt+q wieder schließen. Mappe speichern, schließen und wieder öffnen, das war's.
Gruß
Nepumuk
Antwort 2 von Schnuffi
Hallo Nepomuk,
vielen Dank für die Hilfe. Das Ganze hat in der Anwendung auch prima geklappt.
Vermutlich muß ich das Makro dann in jedem Tabellenblatt anwenden, wenn ich von dieser Sorte mehrere habe, oder.
Könntest Du kurz umreißen, was das Makro ändert bzw. anstellt.
Viele Grüße
Schnuffi
vielen Dank für die Hilfe. Das Ganze hat in der Anwendung auch prima geklappt.
Vermutlich muß ich das Makro dann in jedem Tabellenblatt anwenden, wenn ich von dieser Sorte mehrere habe, oder.
Könntest Du kurz umreißen, was das Makro ändert bzw. anstellt.
Viele Grüße
Schnuffi
Antwort 3 von Nepumuk
Hallo Schnuffi,
Variante 1 für alle Tabelle der Mappe:
Variante 2 für von dir bestimmte Tabellen der Mappe:
Gruß
Nepumuk
Variante 1 für alle Tabelle der Mappe:
Private Sub Workbook_Open()
Dim myWorksheet As Worksheet
For Each myWorksheet In ThisWorkbook.Worksheets
With myWorksheet
.Protect Password:="Dein Kennwort", UserInterfaceOnly:=True
.EnableOutlining = True
End With
Next
End Sub
Variante 2 für von dir bestimmte Tabellen der Mappe:
Private Sub Workbook_Open()
Dim varWorksheetArray As Variant, varWorksheetItem As Variant
varWorksheetArray = Array("Tabelle1", "Tabelle2", "Tabelle5")
For Each varWorksheetItem In varWorksheetArray
With Worksheets(varWorksheetItem)
.Protect Password:="Dein Kennwort", UserInterfaceOnly:=True
.EnableOutlining = True
End With
Next
End Sub
Gruß
Nepumuk
Antwort 4 von Nepumuk
Hallo Schnuffi,
ist wohl noch zu früh um Fragen zu lesen.
Der Code schützt die Tabelle, das ist dir sicher klar. Der Parameter "UserInterfaceOnly:=True" bewirkt, das Makros ungehindert auf geschützte Tabellen zugreifen können. Die Eigenschaft "EnableOutlining = True" lässt das Gruppieren trotz Blattschutz zu, da diese Eigenschaft von einem Makro, im Zusammenhang mit dem erwähnten Parameter, gesetzt wird.
Gruß
Nepumuk
ist wohl noch zu früh um Fragen zu lesen.
Zitat:
Könntest Du kurz umreißen, was das Makro ändert bzw. anstellt.
Könntest Du kurz umreißen, was das Makro ändert bzw. anstellt.
Der Code schützt die Tabelle, das ist dir sicher klar. Der Parameter "UserInterfaceOnly:=True" bewirkt, das Makros ungehindert auf geschützte Tabellen zugreifen können. Die Eigenschaft "EnableOutlining = True" lässt das Gruppieren trotz Blattschutz zu, da diese Eigenschaft von einem Makro, im Zusammenhang mit dem erwähnten Parameter, gesetzt wird.
Gruß
Nepumuk
Antwort 5 von Blaumann
Das Makro erweitern
(Blattschutz rein und raus bitte aufzeichnen)
Erweiterung des Makros zu Beginn
= Bilderneuerung aussetzen und Blattschutz aufheben
Application.ScreenUpdating = False
Erweiterung des Makros am Ende
= Blattschutz wiederherstellen und Bilderneuerung wieder einsetzem
Application.ScreenUpdating = True
(Blattschutz rein und raus bitte aufzeichnen)
Erweiterung des Makros zu Beginn
= Bilderneuerung aussetzen und Blattschutz aufheben
Application.ScreenUpdating = False
Erweiterung des Makros am Ende
= Blattschutz wiederherstellen und Bilderneuerung wieder einsetzem
Application.ScreenUpdating = True

