Gruppieren in Pivottabellen per VBA
02.02.2005 15:15:20
Doris
heute versuche ich eine Pivot-Tabelle per VBA zu erstellen und dabei einige Felder zu gruppieren.
Anbei mal ein Auszug aus meinem Code. Hier geht es darum, zunächst festzulegen,
welche Zeilenfelder gruppiert werden sollen (in diesem Fall Navigation-Map und MMI Navi). Aus den Feldern bilde ich dann eine Range, um sie zu selektieren und dann mit Selection.Group die Zeilen zu gruppieren.
Anschließend werden Details ausgeblendet und die Gruppe soll einen vernünftigen Namen bekommen.
Problem an der Sache ist, dass es nicht garantiert ist dass die zu gruppierenden Zeilen existieren, so dass ich evtl gar keine Gruppe erhalte. Und da ich das in meinem Makro mit mehreren Gruppen mache, weiß ich nicht, wie die erstellte Gruppe eigentlich heißt (Gruppe1 oder Gruppe2, etc.)
Was ich bräuchte wäre eine Information, wie die gerade erstellte Gruppe durch den Befehl Selection.Group heißt, damit ich sie umbenennen kann. Oder besser noch ich gruppiere sie gleich mit richtigem Namen.
ar_GruppeNavi = Array("Navigation-MAP", "MMI Navi")
For Each element In ar_GruppeNavi
Set c = ActiveSheet.Range("A:A").Find(element, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
If r_bereichNavi Is Nothing Then
Set r_bereich_Navi = c
Else
Set r_bereich_Navi = Union(r_bereich_Navi, Range(c, c))
End If
End If
Next
r_bereich_Navi.Select
Selection.Group
ActiveSheet.PivotTables("PivotTable1").PivotSelect "Gruppe1", xlDataAndLabel, True
Selection.ShowDetail = False
ActiveSheet.PivotTables("PivotTable1").PivotFields("Funktionsgruppe2"). _
PivotItems("Gruppe1").Caption = "Navigations-Gruppe"