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

Gruppierung, ShowDetail

Forumthread: Gruppierung, ShowDetail

Gruppierung, ShowDetail
18.02.2008 08:02:07
Dr.
Hallo,
ich wäre für eine Hilfestellung dahingehend dankbar, wie ich folgendes Makro umgestalten kann:

Sub AnzeigenDetail
For Each row In Selection
Rows(7).showDetail = True
Next
End Sub


Das vorstehende Makro erweitert eine vorhandene Gruppierung ausschließlich in der Zeile 7 auf die größtmögliche Ebene (Ebene 8).
Mir geht es um folgendes:
Ich möchte enen beliebigenTeilbereich - bestehend aus mehreren Zeilen - einer Gruppierung im Arbeitsblatt in Spalte A markieren.
Für jede Zeile des markierten Teilbereiches (also nicht für die Gruppierung insgesamt) soll die Gruppierung auf die größtmögliche Ebene (Ebene 8) erweitert werden.
Weil es nur um einen Teilbereich geht, verwende ich nicht "Outline.ShowLevels RowLevels:=8". Dies würde bekanntlich die gesamte Gruppierung auf die Ebene 8 erweitern.
Wie kann ich erreichen, dass das Makro nacheinander jede Zeile des markierten Bereiches abarbeitet und die Gruppierung ausschließlich für den markierten Bereich auf die Ebene 8 erweitert und für die nichtmarkierten Bereiche unverändert lässt?
Vielen Dank und viele Grüße
Dr. Eckhard Drebes

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gruppierung, ShowDetail
20.02.2008 22:40:08
Hans
Hi,
vorausgestzt, dein Code funktioniert(hab es nicht getestet) so:

Sub AnzeigenDetail
For Each row In Selection
Row.showDetail = True
Next
End Sub


mfg Hans

AW: Gruppierung, ShowDetail
21.02.2008 17:25:54
Dr.
Hallo Hans,
vielen Dank für die Empfehlung, "Row.showDetail = True " zu verwenden.
Dies führt allerdings zu der Fehlermeldung "Die ShowDetail-Eigenschaft des Range-Objektes kann nicht festgelegt werden."
Das Makro funktioniert also tatsächlich nur mit einer konkreten Zeilenangabe, also zB "Rows(7).showDetail = True"
Voraussetzungen ist weiterhin, dass in der konkret bezeichneten Zeile, also hier zB Zeile 7, auch eine Gruppierung zum Aufklappen vorhanden ist. Ist das nicht der Fall, erfolgt ebenfalls die vorgenannte Fehlermeldung.
Da in einem markierten Bereich regelmäßig auch Zeilen ohne einen aufklappbaren Gruppierungspunkt vorhanden sind, habe ich versucht, diese Zeilen mit der Anweisung "on error resume next" zu überspringen, das funktioniert aber leider auch nicht. In diesem Falle zeigt das Makro insgesamt keine Wirkung, überspringt also auch die Zeilen, in denen ein Gruppierungspunkt vorhanden ist.
Ich gehe deshalb davon aus, dass sich meine Vorstellungen nicht umsetzen lassen, bedanke mich aber nochmals sehr herzlich für den Hinweis.
Mit freundlichen Grüßen
Dr. Eckhard Drebes
vielen Dank für die Empfehlung, "Row.showDetail = True " zu verwenden.
Dies führt allerdings zu der Fehlermeldung "Die ShowDetail-Eigenschaft des Range-Objektes kann nicht festgelegt werden."
Das Makro funktoniert also tatsächlich nur mit einer konkreten Zeilenangabe, also zB "Rows(7).showDetail = True"
.
Voraussetzungen ist weiterhin, dass in der konkret bezeichneten Zeile, also hier zB Zeile 7, auch eine Gruppierung zum Aufklappen vorhanden ist.Ist das nicht der Fall, erfolgt ebenfalls die vorgenannte Fehlermeldung.
Da in einem markierten Bereich regelmäßig auch Zeilen ohne einen aufklappbaren Gruppierungspunkt vorhanden sind, habe ich versucht, diese Zeilen mir der Anweisung "on error resume next" zu überspringen, das funktioniert aber leider auch nicht. In diesem Falle zeigt das Makro insgesamt keine Wirkung, überspringt also auch die Zeilen, in denen ein Gliederungspunkt vorhanden ist.
Ich gehe deshalb davon aus, dass sich meine Vorstellungen nicht umsetzen lassen, bedanke mich aber nochmals sehr herzlich für Deinen Hinweis.
Mit freundlichen Grüßen
Dr. Eckhard Drebes
Anzeige
;
Anzeige

Infobox / Tutorial

Gruppierung und ShowDetail in Excel: Hilfreiche Ansätze


Schritt-für-Schritt-Anleitung

Um die ShowDetail-Funktion in VBA zu nutzen und die Gruppierung auf die größtmögliche Ebene zu erweitern, kannst du folgendes Makro verwenden. Dieses Makro ermöglicht es dir, die Gruppierung für einen markierten Bereich anzuwenden:

Sub AnzeigenDetail()
    On Error Resume Next
    For Each row In Selection
        row.ShowDetail = True
    Next row
    On Error GoTo 0
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineArbeitsmappe)“ > Einfügen > Modul.
  3. Kopiere den obigen Code in das Modul.
  4. Schließe den VBA-Editor und kehre zu Excel zurück.
  5. Markiere den gewünschten Bereich in deiner Tabelle und führe das Makro über ALT + F8 aus.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Die ShowDetail-Eigenschaft des Range-Objektes kann nicht festgelegt werden."

    • Lösung: Stelle sicher, dass im markierten Bereich auch wirklich Gruppierungen vorhanden sind. Das Makro funktioniert nur für Zeilen mit Gruppierung.
  • Makro überspringt alle Zeilen:

    • Lösung: Verwende On Error Resume Next vor der ShowDetail-Anweisung, damit das Makro Fehler in Zeilen ohne Gruppierung ignoriert. Setze am Ende On Error GoTo 0, um die Fehlerbehandlung zurückzusetzen.

Alternative Methoden

Falls du keine VBA-Lösung nutzen möchtest, kannst du die Gruppierung manuell erweitern:

  1. Markiere die Zeilen mit der Gruppierung.
  2. Klicke auf das kleine Pluszeichen neben der Gruppierung, um die Details anzuzeigen.
  3. Dies ist zwar weniger flexibel, aber bietet eine schnelle Möglichkeit, ohne Programmierung zu arbeiten.

Praktische Beispiele

  • Beispiel 1: Wenn du eine Gruppierung in Zeile 5 hast und die Details für die Zeilen 6 bis 10 anzeigen möchtest, markiere einfach diese Zeilen und führe das Makro aus.

  • Beispiel 2: Angenommen, du hast mehrere Gruppen in deiner Tabelle, aber nur für einige möchtest du die Details sehen. Wähle die entsprechenden Zeilen aus und das Makro wird nur für diese anwenden.


Tipps für Profis

  • Optimierung: Wenn du mit großen Datenmengen arbeitest, könnte das Makro langsam werden. Überlege, ob du die Anzahl der Zeilen, die du markierst, reduzieren kannst, um die Ausführung zu beschleunigen.

  • Debugging: Nutze Debug.Print row.Address innerhalb der Schleife, um zu sehen, welche Zeilen das Makro verarbeitet. Das ist besonders hilfreich, wenn du Probleme mit bestimmten Zeilen hast.


FAQ: Häufige Fragen

1. Kann ich das Makro auch für mehrere Arbeitsblätter verwenden? Ja, du kannst das Makro in jedem Arbeitsblatt verwenden, solange die Gruppierungen vorhanden sind.

2. Was mache ich, wenn das Makro immer noch nicht funktioniert? Überprüfe, ob die Gruppierungen korrekt eingerichtet sind und ob du die richtigen Zeilen markiert hast. Achte auch darauf, dass du das Makro im richtigen Modul gespeichert hast.

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