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

Gruppierung auslesen und danach wieder setzen

Forumthread: Gruppierung auslesen und danach wieder setzen

Gruppierung auslesen und danach wieder setzen
08.03.2017 10:27:43
cH_rI_sI
Hallo liebe Freunde,
ich habe Zeilen 2-stufig gruppiert und somit 3 Button zum Ändern der Gruppierung; weiters habe ich Makros zum Ein- und Ausblenden von versch. Bereichen - leider ist beim Aktivierung der Makros die ursprünglich eingestellte Gruppierung wieder weg - daher möchte ich gerne prüfen, ob eine Gruppierung vorhanden ist und die ursprüngliche Gruppierung nach dem Aus- und Einblenden bestimmter Zeilen (Bereiche sind via Namen definiert) wieder setzen.
Zum Prüfen, ob eine Gruppierung vorhanden ist, habe ich diesen Code gefunden:
Sub PruefungAufGliederungen()
Dim rngB As Range, rngC As Range, rngR As Range
Set rngB = ActiveSheet.UsedRange
For Each rngR In rngB.Rows
If rngR.OutlineLevel > 1 Then
MsgBox "Zeilengliederungen vorhanden"
Exit For
End If
Next rngR
For Each rngC In rngB.Columns
If rngC.OutlineLevel > 1 Then
MsgBox "Spaltengliederungen vorhanden"
Exit For
End If
Next rngC
End Sub
Und mit solch eine Code blende ich bestimmte Bereiche aus / ein:
Sub PLANNED()
Application.ScreenUpdating = False
Range("Masterline").EntireRow.Hidden = True
Range("ACTIVE").EntireRow.Hidden = True
Range("PLANNED").EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub
Wenn ich die Gruppierung via Button 1 aktiviere, kommt beim Code als OutlineLevel 3 zurück - dies möchte ich nachher wieder setzen - aber wie mache ich das?
Bitte um Eure Unterstützung - Danke!
Glg,
Chrisi
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gruppierung auslesen und danach wieder setzen
08.03.2017 12:01:24
cH_rI_sI
Ich habe es jetzt so probiert:
Level = rngR.OutlineLevel
ActiveSheet.Outline.ShowLevels RowLevels:=Level
Aber dann werden wieder die unerwünschten Bereiche eingeblendet - hoffentlich gibt es hierfür eine Lösung...
AW: Gruppierung auslesen und danach wieder setzen
08.03.2017 12:47:27
cH_rI_sI
Anbei noch ein Beispielfile:
https://www.herber.de/bbs/user/112032.xlsm
Wenn bei ALL die Gruppierung auf 3 ist, dann soll diese beim Wechsel auf PLANNED erhalten bleiben (bei Level 1 und 2 natürlich das selbe) und natürlich auch nur der gewählte Bereich eingeblendet sein (wird wieder alles eingeblendet)...
Besten Dank im Voraus für Eure Mühe!!!
Anzeige
AW: Gruppierung auslesen und danach wieder setzen
11.03.2017 18:36:43
cH_rI_sI
Problem nun via Zeilenhöh 0 gelöst - gibt anscheinend keine andere Möglichkeit...
;
Anzeige
Anzeige

Infobox / Tutorial

Gruppierung auslesen und setzen in Excel


Schritt-für-Schritt-Anleitung

  1. Gruppierung prüfen: Verwende den folgenden VBA-Code, um zu überprüfen, ob Zeilen- oder Spaltengliederungen vorhanden sind:

    Sub PruefungAufGliederungen()
        Dim rngB As Range, rngC As Range, rngR As Range
        Set rngB = ActiveSheet.UsedRange
        For Each rngR In rngB.Rows
            If rngR.OutlineLevel > 1 Then
                MsgBox "Zeilengliederungen vorhanden"
                Exit For
            End If
        Next rngR
        For Each rngC In rngB.Columns
            If rngC.OutlineLevel > 1 Then
                MsgBox "Spaltengliederungen vorhanden"
                Exit For
            End If
        Next rngC
    End Sub
  2. Bereiche ein- und ausblenden: Du kannst bestimmte Bereiche mit folgendem Code ausblenden oder einblenden:

    Sub PLANNED()
        Application.ScreenUpdating = False
        Range("Masterline").EntireRow.Hidden = True
        Range("ACTIVE").EntireRow.Hidden = True
        Range("PLANNED").EntireRow.Hidden = False
        Application.ScreenUpdating = True
    End Sub
  3. Gruppierung wiederherstellen: Um die ursprüngliche Gruppierung nach dem Ein- und Ausblenden wiederherzustellen, speichere den OutlineLevel, bevor du den Bereich änderst, und setze ihn nach der Änderung zurück:

    Level = rngR.OutlineLevel
    ActiveSheet.Outline.ShowLevels RowLevels:=Level

Häufige Fehler und Lösungen

  • Unerwünschte Bereiche werden eingeblendet: Achte darauf, dass Du nach dem Setzen des OutlineLevel die Sichtbarkeit der gewünschten Bereiche überprüfst. Möglicherweise musst Du die Sichtbarkeit der Gruppen manuell steuern, um unerwünschte Einblendungen zu vermeiden.

  • Makros deaktivieren beim Wechsel: Stelle sicher, dass Deine Makros korrekt aktiviert sind, bevor Du die Gruppierungen änderst. Manchmal können Sicherheitseinstellungen oder Fehler im Code dazu führen, dass Makros nicht wie gewünscht funktionieren.


Alternative Methoden

Wenn Du mit VBA nicht vertraut bist oder eine Alternative suchst, kannst Du auch die Funktionen in Excel nutzen, um Gruppierungen manuell zu erstellen oder aufzuheben. Gehe dazu in die Menüleiste und wähle „Daten“ → „Gruppieren“ oder „Gruppierung aufheben“. Diese Methode ist besonders nützlich für die Excel Gruppierung mehrfachauswahl, wenn Du gezielt mehrere Zeilen oder Spalten gleichzeitig bearbeiten möchtest.


Praktische Beispiele

  1. Beispiel zur Überprüfung der Gruppierung: Setze den VBA-Code in ein Modul und führe ihn aus, wenn Du in einem Arbeitsblatt bist, das bereits Gruppierungen enthält. Du erhältst eine Nachricht, ob Zeilen- oder Spaltengliederungen vorhanden sind.

  2. Einfache Gruppierung in PowerPoint: Das Konzept der Gruppierung ist ähnlich in PowerPoint. Du kannst Objekte gruppieren, indem Du sie auswählst und mit der rechten Maustaste „Gruppieren“ wählst. Dies ist nützlich, um mehrere Objekte zusammen zu bearbeiten, ohne die Position oder den Stil der einzelnen Elemente zu verlieren.


Tipps für Profis

  • Nutze die VBA-OutlineLevel-Eigenschaft, um komplexe Datenstrukturen in Excel effizient zu verwalten. Wenn Du oft mit Gruppierungen arbeitest, überlege, eine benutzerdefinierte Funktion zu erstellen, die die Sichtbarkeit von Gruppen basierend auf bestimmten Kriterien steuert.

  • Halte Deine Makros organisiert und dokumentiert, insbesondere wenn Du mehrere Gruppen und Bereiche gleichzeitig verwaltest. Dies hilft, das Risiko von Fehlern zu minimieren und die Wartbarkeit zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich alle Gruppierungen aufheben?
Um alle Gruppierungen in Excel aufzuheben, gehe zu „Daten“ → „Gruppierung aufheben“. Alternativ kannst Du VBA verwenden, um dies programmgesteuert zu tun.

2. Was ist der Unterschied zwischen Zeilen- und Spaltengliederungen?
Zeilengliederungen beziehen sich auf das Gruppieren von Zeilen, während Spaltengliederungen das Gruppieren von Spalten betreffen. Beide können in Excel verwendet werden, um die Übersichtlichkeit von Daten zu verbessern.

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