Spaltengruppierung per Makro
04.04.2016 12:28:16
Bernd
ich hab ein kleineres Problem, welches ich leider nicht in den Griff bekomme.
Ich baue aktuell eine Bestandsliste für einen Kumpel.
Beim Öffnen der Datei wird über VBA eine neue Spalte mit dem aktuellen Datum angelegt und diese neue Spalte, in Abhängigkeit der Kalenderwoche, in eine neue Gruppierung eingebunden.
Der Code dazu lautet:
Private Sub Workbook_Open()
Set ws = ThisWorkbook.Sheets("Bestandsliste")
ws.Select
ls = ws.Cells(2, Columns.Count).End(xlToLeft).Column
lz = ws.Cells(Rows.Count, ls).End(xlUp).Row
If CDate(ws.Cells(2, ls).Value) Date Then
ws.Cells(2, ls + 1).Value = Date
ws.Cells(1, ls + 1).FormulaLocal = "=Kalenderwoche(" & Cells(2, ls + 1).Address & ";21)"
For i = 3 To lz
ws.Cells(i, ls + 1).Value = ws.Cells(i, ls).Value
Next i
If ws.Cells(1, ls).Value ws.Cells(1, ls + 1).Value Then
ws.Range(Columns(4), Columns(ls)).Columns.Group
End If
'Gruppen = ws.Cells(2, 4).EntireColumn.OutlineLevel
'If Gruppen was muss hier rein um neu zu gruppieren?
'end if
End If
Set ws = Nothing
End Sub
Soweit, sogut; wenn man diese Liste jetzt über mehrere Wochen pflegt hat man irgendwann 25 Gruppierungen und sieht die eigentliche Liste nicht mehr :-)
Ich würde gern die Gruppierungen auf max. 5 Ebenen eingrenzen, so dass immer die ältesten neu zusammengelegt werden. Leider hab ich keinen Plan, wie ich z.b. die letzte Spalte der 5. Gruppe identifiziere um diese dann als neuen
ws.Range(Columns(4), Columns("letztespalte5.gruppe")).Columns.Group
zusammenzufassen.
Kann mir bitte jemand einen Denkanstoss geben?
Danke und Grüße, Bernd