Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: DRINGEND! Bei Blattschutz Gruppierung zulassen!

DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 15:44:21
Ludwig
Hallo!
Sorry für das "Dringend", aber meine Datei muss morgen versendet werden, deswegen die Eile!
In einer Datei mit mehreren Reitern, welche alle mit Blattschutz (inkl. Passwort) belegt sind, gibt es einen Reiter, in dem es Gruppierungen gibt.
Normalerweise sind diese Gruppierungen bei Blattschutz nicht mehr auf-/zuklickbar.
Mit folgendem Code funktioniert es (teilweise):

Sub Workbook_Open()
ActiveSheet.Protect userinterfaceonly:=True, Password:="MeinPasswort"
ActiveSheet.EnableOutlining = True 'für Gliederung
ActiveSheet.EnableAutoFilter = True 'für Autofilter
End Sub


Beim ersten öffnen der Datei funktioniert das mit der Gruppierung öffnen/schliessen.
Aber wenn ich die Datei dann wieder abspeichere und neu öffne, kann ich die Gruppierung nicht mehr öffnen/schliessen wegen Schreibschutz.
Fehlt hier nicht etwas?
Danke schonmal!
Gruß,
Ludwig

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 15:49:46
Hajo_Zi
Halo Ludwig,
es ist doch nicht sicher welche Tabelle bei öffnen aktiv ist. Also gebe die Tabelle Explicit an.

AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:02:36
Helmut
Auf diese Weise wird die WS Eigenschaft nur für das Blatt freigeben, das beim Öffnen des WB aktiv ist.
Entweder gibst du den Namen des WS an, das die gewünsche Eigenschaft haben soll, oder Du läufst mit einer Schleife über alle WS des WB
Anzeige
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:07:37
Ludwig
Vielen Dank!
Mit einer expliziten Angabe funktioniert es nun.
Sheets("Reitername") nun vorangesetzt.
Aber was wäre, wenn ich diese Funktion in mehreren Reitern haben möchte?
Muss ich für jeden Reiter eine eigene Codezeile mit den Namen einzeln in das Makro schreiben oder gibt es in VBA auch sowas wie "AllSheets", etc., damit es auf allen Reitern funktioniert?
Bin leider nur ein VBA-Laie.
Anzeige
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:12:02
Hajo_Zi
Hallo Ludwig,
realisiere die Lösung von Helmut.
Dim WsTabelle As Worksheet
For Each WsTabelle In Sheets
WsTabelle......
Next WsTabelle
Gruß Hajo
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:19:24
Ludwig
Dir auch vielen Dank, Hajo!
Wie gesagt, bin VBA-Laie.
Wie würde das dann aussehen?
Wäre es so richtig?

Sub Workbook_Open()
Dim WsTabelle As Worksheet
For Each WsTabelle In Sheets
WsTabelle.Protect UserInterfaceOnly:=True, Password:="MeinPasswort"
WsTabelle.EnableOutlining = True 'für Gliederung
WsTabelle.EnableAutoFilter = True 'für Autofilter
End Sub


Danke vorab!

Anzeige
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:29:38
Ludwig
Irgendwie funktioniert mein Code nicht!
Beim öffnen gibt es eine Fehlermeldung, dann direkt im VB-Editor:
Fehler beim Kompilieren:
For ohne Next
?
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:31:06
ms22
Hallo,

Sub Workbook_Open()
Dim WsTabelle As Worksheet
For Each WsTabelle In Sheets
WsTabelle.Protect UserInterfaceOnly:=True, Password:="MeinPasswort"
WsTabelle.EnableOutlining = True 'für Gliederung
WsTabelle.EnableAutoFilter = True 'für Autofilter
Next WsTabelle
End Sub


gruß

Anzeige
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:32:45
Hajo_Zi
Hallo Ludwig,
in Deinem Code fehlt Next WsTabelle
Gruß Hajo
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:53:48
Ludwig
Dankesehr!!
Was sagt das Next WsTabelle denn aus?
Bedeutet das, dass quasi wieder und wieder durch alle Reiter durchläuft?
AW: DRINGEND! Bei Blattschutz Gruppierung zulassen!
18.06.2009 16:57:45
ms22
Next WsTabelle sagt nur aus, dass das nächste Worksheet bearbeitet werden soll. Es ist nur ein formaler Abschluss für die For-Schleife.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Blattschutz: Gruppierung Zulassen und Verwenden


Schritt-für-Schritt-Anleitung

Um in Excel Gruppierungen trotz Blattschutz zu ermöglichen, kannst du den folgenden VBA-Code verwenden. Dieser Code stellt sicher, dass die Gruppierung aufklappen und schließen kannst, während der Blattschutz aktiv bleibt.

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere den folgenden Code in das Modul:

    Sub Workbook_Open()
       Dim WsTabelle As Worksheet
       For Each WsTabelle In ThisWorkbook.Sheets
           WsTabelle.Protect UserInterfaceOnly:=True, Password:="MeinPasswort"
           WsTabelle.EnableOutlining = True ' für Gliederung
           WsTabelle.EnableAutoFilter = True ' für Autofilter
       Next WsTabelle
    End Sub
  4. Ersetze "MeinPasswort" durch dein tatsächliches Passwort.

  5. Schließe den VBA-Editor und speichere die Datei als "Excel-Arbeitsmappe mit Makros" (*.xlsm).

  6. Schließe und öffne die Datei erneut, um den Code auszuführen.


Häufige Fehler und Lösungen

  • Fehlermeldung: "For ohne Next"
    Stelle sicher, dass der Next WsTabelle Befehl am Ende der Schleife steht. Der vollständige Code sollte wie oben gezeigt aussehen.

  • Gruppierungen sind nicht aufklappbar
    Vergewissere dich, dass du den Code in das richtige Modul eingefügt hast und die Datei mit Makros gespeichert ist.

  • Passwort funktioniert nicht
    Achte darauf, dass das Passwort korrekt eingegeben wurde. Es ist case-sensitive.


Alternative Methoden

Wenn du eine Lösung ohne VBA bevorzugst, kannst du die Gruppierung manuell aktivieren, indem du:

  1. Den Blattschutz aufhebst.
  2. Die Gruppierung vornimmst.
  3. Den Blattschutz erneut aktivierst, jedoch ohne die Optionen für Gruppierungen zu sperren.

Beachte, dass dies weniger automatisiert ist und du die Schritte jedes Mal wiederholen musst.


Praktische Beispiele

Hier ein einfaches Beispiel für das Gruppieren in Excel:

  1. Markiere die Zeilen, die du gruppieren möchtest.
  2. Gehe zu "Daten" > "Gruppieren".
  3. Aktiviere den Blattschutz mit den oben beschriebenen VBA-Einstellungen, um die Gruppierung zu erlauben.

Du kannst auch mehrere Gruppierungen in verschiedenen Arbeitsblättern anwenden, indem du den gleichen VBA-Code verwendest.


Tipps für Profis

  • Überlege, ob du die Option "Blattschutz filtern zulassen" aktivierst, um das Filtern von Daten auch bei aktiviertem Blattschutz zu ermöglichen.
  • Teste die Funktionen in einer Kopie deiner Datei, bevor du sie in einer produktiven Umgebung verwendest.
  • Halte die VBA-Referenzen in deiner Arbeitsmappe sauber, um zukünftige Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Gruppierung bei Blattschutz erlauben?
Verwende den oben angegebenen VBA-Code, um die Gruppierung zu aktivieren, während der Blattschutz aktiv ist.

2. Funktioniert das auch in Excel Online?
Nein, VBA wird nicht in Excel Online unterstützt. Du musst die Desktop-Version von Excel verwenden.

3. Kann ich die Gruppierung ohne VBA aktivieren?
Ja, du kannst den Blattschutz aufheben, die Gruppierung vornehmen und dann wieder aktivieren, jedoch ist dies nicht automatisiert.

4. Wie kann ich die Gruppierung wieder entfernen?
Markiere die gruppierten Zeilen, gehe zu "Daten" > "Gliederung" und wähle "Gruppierung aufheben".

5. Habe ich die Möglichkeit, mehrere Reiter gleichzeitig zu schützen?
Ja, der bereitgestellte VBA-Code schützt alle Blätter in der Arbeitsmappe gleichzeitig.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige