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

Forumthread: Zeilen gruppieren bei gleichem Inhalt in Spalte A

Zeilen gruppieren bei gleichem Inhalt in Spalte A
19.11.2018 14:18:21
Benny
Hallo zusammen,
ich habe aktuell ein Problem in der Umsetzung bzgl. der Sortierung einer Tabelle.
Ich habe mich bereits durch mehrere Beiträge gelesen, jedoch habe nichts gefunden was ich mit meinen rudimentären VBA Kenntnissen auf meine Bedürfnisse hätte anpassen können. :-)
Ich importiere eine Liste aus unserer Warenwirtschaft und möchte diese für Besprechungen ein wenig aufbereiten.
Die Daten werden über das Rahmenprojekt vorsortiert, sodass alle Zeilen sortiert vorliegen.
Bei der exportierten Liste möchte ich nun, ähnlich der Funktion Teilergebnis, alle Zeilen, die in Spalte A einen identischen Wert haben gruppieren. Wenn das entsprechende Projekt besprochen wird möchte ich gerne mit dem + / - Button die Gruppierung erweitern um die Details sehen zu können.
Das Ergebnis aus der Funktion "Teilergebnis" finde ich zu unübersichtlich, da die zusätzliche Zeile eingefügt wird.
Die normale Funktion Gruppieren finde ich deutlich besser, bei 150 Projekten die jede Woche besprochen werden müssen ist das per Handarbeit allerdings nicht leistbar.
Schön wäre dann noch wenn die erste Zeile der Gruppe in Fettschrift dargestellt könnte.
Ich habe mal ein ganz einfaches Beispiel angefügt.
https://www.herber.de/bbs/user/125486.xlsx
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen gruppieren bei gleichem Inhalt in Spalte A
19.11.2018 14:30:17
Daniel
Hi

Sub test()
Dim Bereich As Range
With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
With .Resize(.Rows.Count - 1).Offset(1, 0)
.FormulaR1C1 = "=IF(R[-1]C1=RC1,1,false)"
Intersect(.Parent.UsedRange, .SpecialCells(xlCellTypeFormulas, 4).EntireRow) _
.Font.Bold = True
For Each Bereich In .SpecialCells(xlCellTypeFormulas, 1).Areas
Bereich.EntireRow.Group
Next
.ClearContents
End With
End With
End With
End Sub
Gruß Daniel
Anzeige
AW: Zeilen gruppieren bei gleichem Inhalt in Spalte A
20.11.2018 12:27:33
Benny
Hi Daniel!
Vielen lieben Dank für die echt schnelle Hilfe!!! :-)
Ich habe mit meinen aktuellen Kenntnissen mal versucht den Code zu verstehen. Leider überschreitet das aktuell meinen Horizont.
Wäre es mögich eine Erklärung zu diesem Bereich zu bekommen:
 With .Columns(.Columns.Count + 1)
With .Resize(.Rows.Count - 1).Offset(1, 0)
.FormulaR1C1 = "=IF(R[-1]C1=RC1,1,false)"
Intersect(.Parent.UsedRange, .SpecialCells(xlCellTypeFormulas, 4).EntireRow) _
.Font.Bold = True
For Each Bereich In .SpecialCells(xlCellTypeFormulas, 1).Areas
Bereich.EntireRow.Group
Next
.ClearContents
Im ersten Feldversuch habe ich festgestellt, dass Zeilen mit unterschiedlichem Zellinhalt dennoch gruppiert wurden.
Es muss nach dem Merkmal "Rahmenprojekt", also nach dem Inhalt in Spalte B gruppiert werden. Vielleicht liegt es daran. Aufgrund des mangelhaften Hintergrundwissens bekomme ich die Anpassung des Codes leider nicht selbst bewerkstelligt.
Kannst du da nochmal unterstützen?
Gruß
Benny
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen gruppieren in Excel bei gleichem Inhalt in Spalte A


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel automatisch nach dem Inhalt in Spalte A zu gruppieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code gruppiert alle Zeilen, die in Spalte A denselben Wert haben, und stellt die erste Zeile jeder Gruppe in Fettschrift dar.

  1. Öffne Excel und lade Deine Datei.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Wähle EinfügenModul, um ein neues Modul zu erstellen.
  4. Kopiere den folgenden VBA-Code in das Modul:
Sub GruppenNachInhalt()
    Dim Bereich As Range
    With ActiveSheet.UsedRange
        With .Columns(.Columns.Count + 1)
            With .Resize(.Rows.Count - 1).Offset(1, 0)
                .FormulaR1C1 = "=IF(R[-1]C1=RC1,1,FALSE)"
                Intersect(.Parent.UsedRange, .SpecialCells(xlCellTypeFormulas, 4).EntireRow).Font.Bold = True
                For Each Bereich In .SpecialCells(xlCellTypeFormulas, 1).Areas
                    Bereich.EntireRow.Group
                Next
                .ClearContents
            End With
        End With
    End With
End Sub
  1. Schließe den VBA-Editor.
  2. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Dieser Code gruppiert die Zeilen, die denselben Inhalt in Spalte A haben, und zeigt die erste Zeile der Gruppe in Fettschrift an.


Häufige Fehler und Lösungen

  • Fehler: Zeilen werden nicht korrekt gruppiert

    • Lösung: Stelle sicher, dass die Werte in Spalte A identisch sind (keine zusätzlichen Leerzeichen oder unterschiedliche Groß- und Kleinschreibung).
  • Fehler: Erste Zeile wird nicht fett dargestellt

    • Lösung: Überprüfe, ob der Code korrekt eingefügt wurde und dass die Formatierung in der Zeile nicht überschrieben wird.

Alternative Methoden

Falls Du VBA nicht verwenden möchtest, kannst Du auch die Funktion "Gruppieren" in Excel manuell nutzen:

  1. Sortiere die Daten nach Spalte A.
  2. Wähle die Zeilen aus, die Du gruppieren möchtest.
  3. Gehe zu DatenGruppieren.
  4. Klicke auf + oder -, um die Gruppen anzuzeigen oder zu verbergen.

Eine weitere Möglichkeit ist die Verwendung der Teilergebnis-Funktion, allerdings wird hier eine zusätzliche Zeile eingefügt, was möglicherweise Deine Anforderungen nicht erfüllt.


Praktische Beispiele

Angenommen, Du hast folgende Daten in Excel:

A B
Projekt1 Detail1
Projekt1 Detail2
Projekt2 Detail3
Projekt2 Detail4
Projekt3 Detail5

Nach der Ausführung des Makros wird die Tabelle so gruppiert:

  • Projekt1
    • Detail1
    • Detail2
  • Projekt2
    • Detail3
    • Detail4
  • Projekt3
    • Detail5

So kannst Du die Zeilen mit gleichem Inhalt gruppieren und die Details bei Bedarf anzeigen.


Tipps für Profis

  • Nutze die Funktion FormatPainter, um formatierte Zeilen schnell zu kopieren.
  • Experimentiere mit bedingten Formatierungen, um Zeilen hervorzuheben, die bestimmte Kriterien erfüllen.
  • Automatisiere den Prozess durch das Speichern des Makros für häufige Anwendungen.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die Gruppierung rückgängig machen?
Antwort: Du kannst die Gruppierung aufheben, indem Du die gruppierten Zeilen auswählst und auf DatenGruppierung aufheben klickst.

2. Frage
Kann ich die Gruppierung auch für mehrere Spalten gleichzeitig durchführen?
Antwort: Ja, Du kannst den VBA-Code anpassen, um nach mehreren Spalten zu gruppieren. Es erfordert jedoch zusätzliche Logik im Code.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige