Microsoft Excel

Herbers Excel/VBA-Archiv

Autogruppierung


Betrifft: Autogruppierung von: Flox
Geschrieben am: 07.08.2018 10:28:25

Hallo Zusammen,

Ich suche eine dynamische Möglichkeit meine Gruppenhierarchie zu gruppieren.
Die Gruppierung soll auf 3 Ebenen erfolgen und sieht wie folgt aus:
Hauptgruppe - Gruppe - Untergruppe

Hauptgruppen bestehen immer aus zwei Ziffern (z.B. 01 oder 10)
Gruppen bestehen immer aus 5 Ziffern (z.B. 01-10 oder 10-15)
Untergruppen bestehen immer aus 9 Ziffern (z.B. 01-10-100 oder 10-15-105)

Da diese Gruppenhierarchie regelmäßig erweitert oder verkleinert wird, wäre eine dynamische Lösung von Vorteil für mich.

In Spalte A stehen alle Gruppen-Codes und in Spalte B die dazugehörigen Produktnamen.

  • Code
    01
    01-10
    01-10-100
    01-10-105
    01-10-120
    01-13
    01-13-100
    02
    02-10
    .
    .
    .


  • Ich verzweifle mittlerweile und wäre über jede Hilfe dankbar.

    Lg

      

    Betrifft: AW: nachgefragt ... von: neopa C
    Geschrieben am: 07.08.2018 11:05:15

    Hallo,

    ... auf Basis welcher Daten / Bedingungen soll denn Deine Gruppierung erfolgen?

    Gruß Werner
    .. , - ...


      

    Betrifft: AW: nachgefragt ... von: Flox
    Geschrieben am: 07.08.2018 11:21:31

    Hallo Werner,

    zum Verständnis habe ich eine Mappe hochgeladen.
    Es soll auf Basis der Codes gruppiert werden.
    Ich möchte die Möglichkeit haben, alle Gruppen der jeweiligen Hauptgruppe zu gruppieren und alle Untergruppen der jeweiligen Gruppe zu gruppieren.

    Das File sollte hoffentlich verständlich sein :)

    https://www.herber.de/bbs/user/123178.xlsx

    Besten Dank.

    Lg


      

    Betrifft: AW: dazu würde ich den Autofilter nutzen ... von: neopa C
    Geschrieben am: 07.08.2018 11:35:41

    Hallo,

    ... und auf die unflexible Gruppierungsfunktionalität ganz verzichten.

    Die "Gruppierung" erreichst Du mit der benutzerdefinierter Autofilterfunktion Text und: entspricht ??

    Alternativ z.B. mit einer Hilfsspalte, in der Du die Anzahl der Zeichen Deines Codes ermittelst und nach dessen Ergebniswert 2, 5 oder 9 filterst. Das geht dann auch schneller.

    Gruß Werner
    .. , - ...


      

    Betrifft: AW: dazu würde ich den Autofilter nutzen ... von: Flox
    Geschrieben am: 07.08.2018 12:10:52

    Hallo Werner,

    Vielen Dank für den Tipp.

    Daran habe ich auch schon gedacht.
    Der VBA-Code ist in meinem Fall tatsächlich die angenehmste Lösung :)

    Schönen Tag noch


      

    Betrifft: AW: mit VBA so von: Daniel
    Geschrieben am: 07.08.2018 11:36:42

    Hi

    du könntest mit diesem VBA-Code die Gruppierung erstellen.

    Sub Makro1()
    '
    Dim Zelle As Range
    
    Cells.ClearOutline
    For Each Zelle In Columns(1).SpecialCells(xlCellTypeConstants)
        If Len(Zelle.Value) >= 5 Then Zelle.EntireRow.Group
    Next
    For Each Zelle In Columns(1).SpecialCells(xlCellTypeConstants)
        If Len(Zelle.Value) = 9 Then Zelle.EntireRow.Group
    Next
    End Sub

    ohne Makro wüsste ich jetzt auch keinen anderen Weg als jeden Block einzeln zu Gruppieren.

    Gruß Daniel


      

    Betrifft: AW: mit VBA so von: Flox
    Geschrieben am: 07.08.2018 12:08:49

    Hallo Daniel,

    Es ist frustrierend, wenn man weiß, dass es möglich ist, man selbst es aber nicht umsetzen kann.
    Es funktioniert einwandfrei!

    Genau so habe ich es mir vorgestellt.

    Vielen Dank :)