Gruppierungen werden in Excel-Berichten eingesetzt, um bestimmte Inhalte transparent anzeigen oder ausblenden zu lassen. Es zeigt dem Leser an, dass noch weitere Informationen in der Tabelle vorhanden sind, die möglicherweise eingesehen werden sollten. Im Unterschied dazu gibt es die Möglichkeit, Zeilen oder Spalten komplett auszublenden. Dort erfordert es vom Leser mehr Aufmerksamkeit, um zu bemerken, dass Inhalte verborgen sind. Man bemerkt möglicherweise einen sprunghaften Anstieg in den Zeilennummerierungen oder den Spalten. Für welche Variante man sich entscheidet, ist natürlich situativ.
Worum es allerdings in diesem Blog im Spezifischen geht: Hast Du einmal versucht, Gruppierungen in einem geschützten und gesperrten Tabellenblatt auf- oder einzuklappen? Das ist nicht möglich und die Rechte können nicht entsprechend vergeben werden. Es sei denn, man wendet zwei Zeilen VBA-Code an. Es wird die nachfolgende Fehlermeldung angezeigt:
Hierfür gibt es zwei Möglichkeiten, die ich nachfolgend vorstelle: Eine Schaltfläche, mit welcher der Benutzer die +/- Symbole "aktiviert" oder dass das Makro direkt beim Öffnen der Datei ausgeführt wird. Für beide Lösungsansätze musst Du zunächst in die Makro-Umgebung wechseln (ALT + F11 oder mittels Rechtsklick auf ein Tabellenblatt → "Code anzeigen"). Auf der linken Seite findest Du Deine Tabelle wieder. Mit einem Rechtsklick auf kannst Du via Einfügen → Modul alles soweit vorbereiten, um Dein Makro einzurichten. Füge dann folgenden Code ein:
Sub GruppierungenErlauben()
Sheets("MeinTabellenblatt").Protect Password:="MeinPasswort", UserInterfaceOnly:=True
Sheets("MeinTabellenblatt").EnableOutlining = TrueEnd Sub
Ersetze bitte "MeinTabellenblatt" mit dem Namen Deines Excel-Sheets und vergebe ein Passwort, mit dem der Schutz aufzuheben ist. Mit "UserInterfaceOnly" wird lediglich die Benutzereingabe eingeschränkt; ein Makro könnte nach wie vor Änderungen in den gesperrten Bereichen vornehmen. Durch die weitere Angabe "EnableOutlining" wird die Berechtigung erteilt, auf die Gruppierungen zuzugreifen - trotz Blattschutz. Um dem Benutzer im Tabellenblatt die Möglichkeit zu geben, die Funktion zu aktivieren, füge beispielsweise ein Textfeld ein. Mit einem Rechtsklick auf dieses Objekt findest Du die Option "Makro zuweisen", woraufhin Du das Makro "GruppierungenErlauben" dem "Button" zuweisen kannst.
Makro beim Öffnen der Datei ausführen
Meiner Meinung nach schöner gelöst ist es, wenn Du die Codezeilen direkt ausführst, wenn die Datei geöffnet wird. Um dies zu bewerkstelligen, füge nicht ein neues Modul ein, sondern navigiere in der VBA-Umgebung auf "DieseArbeitsmappe" (ThisWorkbook in Englisch). Füge dort den nachfolgenden Code ein (achte bitte auf die angepasste 1. Code-Zeile):
Private Sub Workbook_Open()
Sheets("MeinTabellenblatt").Protect Password:="MeinPasswort", UserInterfaceOnly:=True
Sheets("MeinTabellenblatt").EnableOutlining = TrueEnd Sub
So wird der Code entsprechend ausgeführt, wenn das Excel-File geöffnet wird.
Bitte beachte, dass Du die Excel-Datei als Makrodatei (.xlsm) oder Binärdatei (.xlsb) abspeichern musst, damit die Makros enthalten bleiben.