Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Gruppierungen bei Blattschutz aufklappen

Forumthread: Gruppierungen bei Blattschutz aufklappen

Gruppierungen bei Blattschutz aufklappen
02.07.2014 17:18:02
Andi T.

Hallo zusammen,
ich stehe vor einem Rätsel.
Folgendes zur Funktionsweise des VBA-Projektes:
Es besteht eine Arbeitsmappe mit mehreren Tabellen, in denen Daten eingetragen sind. Die Ausführung des betreffenden Makros, erstellt zuerst eines neues Tabellenblatt. In diesem Tabellenblatt werden die Daten aus den anderen Tabellen in einer Übersicht zusammengefasst und dabei diverse Zeilen und Spalten nach bestimmten Kriterien gruppiert (Man kann sich das Ganze wie eine Art Bericht vorstellen). Das neue Tabellenblatt soll nun in eine neue Arbeitsmappe kopiert werden, damit es als separate Datei in einem bestimmten Ordner abgelegt werden kann. Das klappt alles auch wunderbar.
Das Problem besteht nun darin, dass in der neue Datei die Gruppierungen nicht mehr aufgeklappt werden können, da ein Blattschutz besteht. Logischerweise muss durch das setzen von .EnableOutlining = True dies ermöglicht werden.
Dies wird im Makro auch vorgenommen, jedoch kann trotzdem keine Gruppierung mehr auf oder zu geklappt werden. Selbst wenn ich in das neue Excel-File ein Makro integriere, das nichts anderes macht als:
ActiveSheet.EnableOutlining = True '(Blattschutz ist während der Ausführung deaktiviert)
kann weiterhin keine Gruppierung mehr aufgeklappt werden.
Ich stehe hier vor einem großen Rätsel, es kommt mir fasst so vor als würde die Anweisung, dass das Auf- bzw. Zuklappen von Gruppierungen erlaubt werden soll, nicht wahrgenommen werden.
Hier der Code aus dem Makro, der die neue Excel-Datei öffnet, das Blatt verschiebt und den Blattschutz implementiert.
'Neues Workbook erstellen
Set wbNew = Workbooks.Add
wbNew.SaveAs strPfadWBNew & "\" & nameFile & ".xlsx"
Workbooks(nameOldWorkbook).Worksheets(nameOldSheet).Move Before:=wbNew.Sheets(1)
wbNew.Worksheets(nameOldSheet).EnableOutlining = True
wbNew.Worksheets(nameOldSheet).Protect Password:=Hilfsfunktionen.getPasswort(), DrawingObjects:=False, AllowFormattingCells:=True, AllowFormattingRows:=True, AllowFormattingColumns:=True, _
UserInterfaceOnly:=True
wbNew.Close SaveChanges:=True

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gruppierungen bei Blattschutz aufklappen
02.07.2014 17:24:40
Hajo_Zi
mal auf den Betreff bezogen.
Autofilterfunktion, Gruppierung bei Blattschutz möglich?
Diese Frage wurde in diesem Forum auch schon gestellt. Die Lösung damals:
Das funktioniert normalerweise nicht. Du kannst Excel aber austricksen.
Bevor Du auf Blattschützen stellst, blendest Du die Filter ein.
Dann schützt Du das Blatt
Jetzt folgendes Makro in VBA unter DieseArbeitsmappe
Sub Workbook_Open()
Sheets("Adresse").Protect UserInterfaceOnly:=True, Password:="Passwort"
Sheets("Adresse").EnableOutlining = True ' Für Gliederung
Sheets("Adresse").EnableAutoFilter = True ' Für AutoFilter
End Sub

‘ Datei schließen und wieder öffnen
Gruß Hajo

Anzeige
AW: Gruppierungen bei Blattschutz aufklappen
02.07.2014 17:51:45
Andi T.
Ok, also funktioniert es nur, wenn mit jedem Start diese Prozedur ausgeführt wird?
Das ist natürlich schlecht, danke für deine Hilfe.

AW: Gruppierungen bei Blattschutz aufklappen
02.07.2014 17:53:21
Hajo_Zi
das hatte ich nicht geschrieben.
Es wird beim öffnen ausgeführt.
Gruß Hajo

Anzeige
AW: Gruppierungen bei Blattschutz aufklappen
02.07.2014 18:14:10
Andi T.
Meinte mit Start auch das Öffnen der Datei. Ist mir schon bewusst, wann dieser Code ausgeführt wird.
Kleine Anschlussfrage:
Gibt es eine Möglichkeit, die Zellauswahl zu beschränken, ohne vom Blattschutz Gebrauch zu machen? (Mir ist hier jetzt nichts bekannt.) Damit meine ich nicht die Anzahl der Zellen o.ä., sondern das typische "Nur nicht gesperrte Zellen auswählen".
Sonst sehe ich nur schwer eine Möglichkeit sowohl mit Gruppierungen zu arbeiten als auch gleichzeitig gewisse Zellen zu sperren, ohne den Blattschutz anwenden zu müssen.
Code per Makro in eine neue Datei zu kopieren und die neue Datei als .xlsm zu speichern, möchte ich eigentlich nicht.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Gruppierungen bei Blattschutz aufklappen


Schritt-für-Schritt-Anleitung

  1. Erstelle ein neues Excel-Dokument: Öffne Excel und erstelle ein neues Arbeitsblatt, in dem Du die Daten verwalten möchtest.

  2. Gruppiere die Daten: Wähle die Zeilen oder Spalten aus, die Du gruppieren möchtest. Gehe dann zu Daten > Gruppieren und wähle die entsprechende Option.

  3. Schütze das Blatt: Um den Blattschutz zu aktivieren, gehe zu Überprüfen > Blatt schützen. Stelle sicher, dass Du die Option Gruppierung zulassen aktivierst.

  4. VBA-Makro einfügen: Öffne den VBA-Editor mit Alt + F11. Füge das folgende Makro in das Code-Fenster ein, um die Gruppierungen zu erlauben:

    Sub Workbook_Open()
       ActiveSheet.EnableOutlining = True ' Gruppierung erlauben
       ActiveSheet.EnableAutoFilter = True ' Autofilter aktivieren
    End Sub
  5. Datei speichern: Speichere die Datei als .xlsm, um das Makro zu aktivieren.

  6. Datei schließen und wieder öffnen: Schließe die Datei und öffne sie erneut, um sicherzustellen, dass das Makro ausgeführt wird.


Häufige Fehler und Lösungen

  • Gruppierungen können nicht aufgeklappt werden: Stelle sicher, dass Du die ActiveSheet.EnableOutlining = True Anweisung im richtigen Kontext verwendest. Diese muss vor dem Blattschutz gesetzt werden.

  • Makro wird nicht ausgeführt: Vergewissere Dich, dass die Datei im Makro-fähigen Format gespeichert ist (.xlsm) und dass Makros in Deinen Excel-Einstellungen aktiviert sind.

  • Blattschutz hindert an der Nutzung von Autofilter: Aktiviere die Autofilteroption bevor Du den Blattschutz setzt, um sicherzustellen, dass die Filter funktionieren.


Alternative Methoden

Eine Möglichkeit, Excel zu nutzen, um Gruppierungen trotz Blattschutz zu erlauben, ist die Verwendung von VBA. Du kannst auch die Gruppierung ohne VBA aktivieren, indem Du die Filter vor dem Setzen des Blattschutzes aktivierst und dann den Schutz anwendest.


Praktische Beispiele

Angenommen, Du hast ein Arbeitsblatt mit Verkaufsdaten, das Du gruppieren möchtest. Du kannst die Daten in Kategorien wie Region, Produkt oder Monat gruppieren und dann den Blattschutz aktivieren, um versehentliche Änderungen zu vermeiden.

Hier ein Beispiel für einen VBA-Code, der die Gruppierung und den Blattschutz kombiniert:

Sub SchutzMitGruppierung()
    With ActiveSheet
        .EnableOutlining = True
        .Protect Password:="deinPasswort", UserInterfaceOnly:=True, AllowFiltering:=True
    End With
End Sub

Tipps für Profis

  • Nutze Tastenkombinationen: Um schneller zu arbeiten, verwende Alt + Shift + Pfeiltasten, um die Gruppierungen auf- und zuzuklappen.

  • Vermeide unnötige Blattschutz-Einstellungen: Überlege, welche Optionen Du tatsächlich benötigst, um die Benutzerfreundlichkeit zu erhöhen.

  • Dokumentation: Halte Deinen VBA-Code gut dokumentiert, damit Du oder andere Benutzer später verstehen, wie der Code funktioniert.


FAQ: Häufige Fragen

1. Kann ich Gruppierungen auch ohne VBA erlauben?
Ja, Du kannst die Gruppierungsoptionen aktivieren, bevor Du den Blattschutz setzt, indem Du sicherstellst, dass die entsprechenden Optionen im Schutzdialog ausgewählt sind.

2. Warum funktioniert mein Makro nicht?
Überprüfe, ob Du das Makro im richtigen Kontext ausführst und ob die Datei als .xlsm gespeichert ist. Auch die Makrosicherheitseinstellungen sollten es erlauben, Makros auszuführen.

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