Excel Zeilen automatisch gruppieren (Makro)
Hallo zusammen,
ich komme bei folgendem Problem in Excel einfach nicht weiter und wäre für jede Hilfe dankbar.
Ich habe eine Tabelle (siehe Bild) in der unterschiedliche Testpersonen mit einigen Merkmalen aufgelistet werden.
Jeweils darunter sind für jede der Testpersonen die Tage 1-13 aufgelistet.
Nun würde ich gerne die Tage so gruppieren, dass man bei ausblenden aller Gruppierungen nur die Liste der Personen sieht. (wie zwischen den ersten beiden Beispielen zu sehen)
Da die Liste über 2000 Testpersonen umfasst bin ich auf der Suche nach einer Möglichkeit, dass die Zeilen "Tag 1 - Tag 13" jeweils automatisch gruppiert werden.
Gibt es dafür möglicherweise eine Lösung? (vllt via Makro?!)
Vielen Dank im Voraus!
ich komme bei folgendem Problem in Excel einfach nicht weiter und wäre für jede Hilfe dankbar.
Ich habe eine Tabelle (siehe Bild) in der unterschiedliche Testpersonen mit einigen Merkmalen aufgelistet werden.
Jeweils darunter sind für jede der Testpersonen die Tage 1-13 aufgelistet.
Nun würde ich gerne die Tage so gruppieren, dass man bei ausblenden aller Gruppierungen nur die Liste der Personen sieht. (wie zwischen den ersten beiden Beispielen zu sehen)
Da die Liste über 2000 Testpersonen umfasst bin ich auf der Suche nach einer Möglichkeit, dass die Zeilen "Tag 1 - Tag 13" jeweils automatisch gruppiert werden.
Gibt es dafür möglicherweise eine Lösung? (vllt via Makro?!)
Vielen Dank im Voraus!
Please also mark the comments that contributed to the solution of the article
Content-Key: 247199
Url: https://administrator.de/contentid/247199
Printed on: April 26, 2024 at 03:04 o'clock
7 Comments
Latest comment
Hallo LoneStarState01, Willkommen auf Administrator.de!
Hier eine Lösung deiner Aufgabe via Makro / und für den Fall das noch was unklar ist, das Demo-Sheet dazu.
Grüße Uwe.
Hier eine Lösung deiner Aufgabe via Makro / und für den Fall das noch was unklar ist, das Demo-Sheet dazu.
Sub GroupRows()
On Error Resume Next
Dim ws As Worksheet, rngNames As Range, cell As Range, f As Range, firstAddress
'Arbeistblatt festlegen
Set ws = ActiveSheet
'Gruppierungsrange festlegen
Set rngNames = ws.Range("A1", ws.Cells(Rows.Count, 1).End(xlUp))
'Gruppierung aus dem Bereich vorher entfernen, für den Fall das das Makro später wiederholt werden soll
ws.Outline.ShowLevels RowLevels:=2
rngNames.Rows.Ungroup
' Im Bereich nach 'Tag 1' suchen und Zellen gruppieren
With rngNames
Set f = .Find("Tag 1", LookIn:=xlValues, Lookat:=xlWhole)
If Not f Is Nothing Then
firstAddress = f.Address
Do
f.Resize(13).Rows.Group
Set f = .FindNext(f)
Loop While Not f Is Nothing And f.Address <> firstAddress
End If
End With
' den + Button für das Öffnen und Schließen der Gruppierung nach oben setzen
ws.Outline.SummaryRow = xlAbove
' Alle Gruppen reduziert anzeigen
ws.Outline.ShowLevels RowLevels:=1
End Sub
Hallo colinardo,
ich stehe gerade vor einem ähnlichen Problem und komme leider aufgrund meiner dürftigen Programmierkenntnisse nicht weiter.
Im Anhang habe ich eine Beispieldatei erstellt und diese manuell zur Ansicht gruppiert.
Würde dies jedoch gerne bei verschiedenen Dateien als Makro einfügen.
Vielen Dank im Voraus!!
Gruß,
Christoph
ich stehe gerade vor einem ähnlichen Problem und komme leider aufgrund meiner dürftigen Programmierkenntnisse nicht weiter.
Im Anhang habe ich eine Beispieldatei erstellt und diese manuell zur Ansicht gruppiert.
Würde dies jedoch gerne bei verschiedenen Dateien als Makro einfügen.
Vielen Dank im Voraus!!
Gruß,
Christoph
Servus Christoph, willkommen auf Administrator.de!
Eigentlich wäre das einen neuen Thread wert, aber da machen wir mal eine Ausnahme .
Habe dir hier mal ein Demo-Sheet zum Download bereit gestellt
Grüße Uwe
Eigentlich wäre das einen neuen Thread wert, aber da machen wir mal eine Ausnahme .
Habe dir hier mal ein Demo-Sheet zum Download bereit gestellt
group_levels_247199.xlsm
Ausgangslage
Nach Anwendung des Makros
Grüße Uwe
Vielen Dank Uwe!
Werde nächstes Mal einen eigenen Thread eröffnen
Ich hätte hierbei noch eine kurze Frage:
Bei der "richtigen" Excel-Datei habe ich mehrere Spalten.
Die Spalten, welche für die Gruppierung relevant sind wären jedoch immer fixiert als M,N,O und P-Spalte.
Wie kann ich bei deinem Programm die Spalten der Range somit am Besten festlegen?
Grüße, Christoph
Werde nächstes Mal einen eigenen Thread eröffnen
Ich hätte hierbei noch eine kurze Frage:
Bei der "richtigen" Excel-Datei habe ich mehrere Spalten.
Die Spalten, welche für die Gruppierung relevant sind wären jedoch immer fixiert als M,N,O und P-Spalte.
Wie kann ich bei deinem Programm die Spalten der Range somit am Besten festlegen?
Grüße, Christoph
Zitat von @creich:
Ich hätte hierbei noch eine kurze Frage:
Bei der "richtigen" Excel-Datei habe ich mehrere Spalten.
Die Spalten, welche für die Gruppierung relevant sind wären jedoch immer fixiert als M,N,O und P-Spalte.
Wie kann ich bei deinem Programm die Spalten der Range somit am Besten festlegen?
Habe dir im Link den du bereits per Mail bekommen hast das Dokument erweitert um eine weitere Tabelle (Example 2) mit einem Beispiel dafür. Im Code kannst du dann die Überschriften des jeweiligen ListObjects angeben.Ich hätte hierbei noch eine kurze Frage:
Bei der "richtigen" Excel-Datei habe ich mehrere Spalten.
Die Spalten, welche für die Gruppierung relevant sind wären jedoch immer fixiert als M,N,O und P-Spalte.
Wie kann ich bei deinem Programm die Spalten der Range somit am Besten festlegen?
Grüße Uwe