Hallo liebe VBA-Cracks,
kurz vor dem WM Spiel heute habe ich eine verzweifelte Frage an Euch, bei der ich hoffe, das Ihr mir die Lösung verraten könnt.
Excel-Version: 2016
Ich habe eine Pivot-Tabelle, aus der ich einzelne PivotItems aus einem PivotField auswähle und möchte diese Items im Anschluss dann zu drei Gruppen zusammenfassen.
Mein bisheriger Code - aufgenommen mit dem VBA Rekorder - sieht so aus:
Sub PivotFields_auswaehlen()
'relevante WBS-Elemente anfiltern.
ActiveSheet.PivotTables("PivotTable3").PivotFields( _
"[Cost Unit].[Costunit Name].[Costunit Name]").VisibleItemsList = Array( _
"[Cost Unit].[Costunit Name].&[Apfel]", _
"[Cost Unit].[Costunit Name].&[Cola]", _
"[Cost Unit].[Costunit Name].&[Birne]", _
"[Cost Unit].[Costunit Name].&[Orange]", _
"[Cost Unit].[Costunit Name].&[Fanta]", _
"[Cost Unit].[Costunit Name].&[Kohl]", _
"[Cost Unit].[Costunit Name].&[Gurke]")
End Sub
Jetzt möchte ich, dass die Felder Apfel, Birne und Orange zu "Obst" gruppiert werden, die Felder Cola und Fanta zu "Getraenke" und Kohl und Gurke zu "Gemuese".
Der Makro-Rekorder hat mir folgendes Makro für "Obst" aufgezeichnet.
Sub test()
Range("A25,A27,A33").Select
Selection.Group
ActiveSheet.PivotTables("PivotTable3").PivotFields( _
"[Cost Unit].[Costunit Name].[Costunit Name1]").PivotItems( _
"[Cost Unit].[Costunit Name].[Costunit Name1].[GROUPMEMBER.[Costunit_NameXl_Grp_1]].[Cost Unit]].[Costunit Name]].[All]]]" _
).Caption = "Obst"
end sub
Mein Problem ist nun, dass die Felder für Apfel, Birne und Orange ihren Zelle wechseln können (aus A25 kann A23 werden, aus A27 A45 usw). Wie schaffe ich es, dass das Makro nach meinen Pivotitems sucht und diese entsprechend gruppiert und die Gruppe auch gleich benennt.
Außerdem wäre ich Euch sehr dankbar, wenn Ihr mir zeigen könnt, wie man diesen Code vereinfachen kann.
1000 Dank für Eure Hilfe.
All den Fussballbegeisterten wünsche ich ein schönes und spannendes Spiel und den anderen einen schönen Abend.
Jörg
kurz vor dem WM Spiel heute habe ich eine verzweifelte Frage an Euch, bei der ich hoffe, das Ihr mir die Lösung verraten könnt.
Excel-Version: 2016
Ich habe eine Pivot-Tabelle, aus der ich einzelne PivotItems aus einem PivotField auswähle und möchte diese Items im Anschluss dann zu drei Gruppen zusammenfassen.
Mein bisheriger Code - aufgenommen mit dem VBA Rekorder - sieht so aus:
Sub PivotFields_auswaehlen()
'relevante WBS-Elemente anfiltern.
ActiveSheet.PivotTables("PivotTable3").PivotFields( _
"[Cost Unit].[Costunit Name].[Costunit Name]").VisibleItemsList = Array( _
"[Cost Unit].[Costunit Name].&[Apfel]", _
"[Cost Unit].[Costunit Name].&[Cola]", _
"[Cost Unit].[Costunit Name].&[Birne]", _
"[Cost Unit].[Costunit Name].&[Orange]", _
"[Cost Unit].[Costunit Name].&[Fanta]", _
"[Cost Unit].[Costunit Name].&[Kohl]", _
"[Cost Unit].[Costunit Name].&[Gurke]")
End Sub
Jetzt möchte ich, dass die Felder Apfel, Birne und Orange zu "Obst" gruppiert werden, die Felder Cola und Fanta zu "Getraenke" und Kohl und Gurke zu "Gemuese".
Der Makro-Rekorder hat mir folgendes Makro für "Obst" aufgezeichnet.
Sub test()
Range("A25,A27,A33").Select
Selection.Group
ActiveSheet.PivotTables("PivotTable3").PivotFields( _
"[Cost Unit].[Costunit Name].[Costunit Name1]").PivotItems( _
"[Cost Unit].[Costunit Name].[Costunit Name1].[GROUPMEMBER.[Costunit_NameXl_Grp_1]].[Cost Unit]].[Costunit Name]].[All]]]" _
).Caption = "Obst"
end sub
Mein Problem ist nun, dass die Felder für Apfel, Birne und Orange ihren Zelle wechseln können (aus A25 kann A23 werden, aus A27 A45 usw). Wie schaffe ich es, dass das Makro nach meinen Pivotitems sucht und diese entsprechend gruppiert und die Gruppe auch gleich benennt.
Außerdem wäre ich Euch sehr dankbar, wenn Ihr mir zeigen könnt, wie man diesen Code vereinfachen kann.
1000 Dank für Eure Hilfe.
All den Fussballbegeisterten wünsche ich ein schönes und spannendes Spiel und den anderen einen schönen Abend.
Jörg
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „joerg_W“ ()