Supportnet Computer
Planet of Tech

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:


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

Antwort 3 von Nepumuk

Hallo Schnuffi,

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.

Zitat:

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Suche in allen vorhandenen Beiträgen: