lonestarstate01
Goto Top

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?!)

7ad306b5c82e2792bc5014f6765aebc0



Vielen Dank im Voraus!

Content-Key: 247199

Url: https://administrator.de/contentid/247199

Printed on: April 26, 2024 at 03:04 o'clock

Member: colinardo
Solution colinardo Aug 22, 2014, updated at Aug 23, 2014 at 08:46:43 (UTC)
Goto Top
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.
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
Grüße Uwe.
Member: LoneStarState01
LoneStarState01 Aug 22, 2014 at 20:08:54 (UTC)
Goto Top
Vielen vielen Dank!
Klappt hervorragend und hat mir viel Arbeit erspart.

Gruß,
Felix
Member: creich
creich Nov 26, 2021 at 11:40:40 (UTC)
Goto Top
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
group
Member: colinardo
colinardo Nov 26, 2021 updated at 14:52:18 (UTC)
Goto Top
Servus Christoph, willkommen auf Administrator.de!

Eigentlich wäre das einen neuen Thread wert, aber da machen wir mal eine Ausnahme face-wink.

Habe dir hier mal ein Demo-Sheet zum Download bereit gestellt

back-to-topgroup_levels_247199.xlsm


back-to-topAusgangslage

screenshot

back-to-topNach Anwendung des Makros

screenshot

Grüße Uwe
Member: creich
creich Nov 26, 2021 at 15:14:45 (UTC)
Goto Top
Vielen Dank Uwe!
Werde nächstes Mal einen eigenen Thread eröffnen face-smile

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
Member: colinardo
colinardo Nov 26, 2021 updated at 15:31:27 (UTC)
Goto Top
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.

Grüße Uwe
Member: creich
creich Nov 26, 2021 at 15:37:22 (UTC)
Goto Top
Super!

Besten Dank!!

Gruß Christoph