Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Pivot Felder

Betrifft: VBA Pivot Felder von: Carina
Geschrieben am: 09.10.2020 08:35:51

Guten Morgen liebes Forum!


Ich habe nun schon ewig gegoogelt, aber komme auf keine Lösung meines Problems..bin mir sicher, dass Ihr mir helfen könnt :-)


Ich erstelle mittels VBA eine Pivottabelle:


- Die Daten der Pivot sind in Tabelle1 ( es handelt sich oben in der Zeile um Kalenderwochen, die sich immer ändern und in Spalte A um Nummern)

- Die Pivot selbst in Tabelle2

- Nun möchte ich dass immer die Zellen G2 - L2 (Datum der Kalenderwochen) aus Tabelle1 als Pivotfields in Werte verschoben werden


Ich finde keine Funktion dass ich ein Pivotfeld hinzufügen kann mit einem Zellenbezug, also z.B. Tabelle1/G2. Alles was ich dazu finde ist immer nur unter "Name".


Bitte bitte um Eure Hilfe!!!!


Dankeschön und liebe Grüße


Carina

Betrifft: AW: VBA Pivot Felder
von: fcs
Geschrieben am: 09.10.2020 13:44:28

Hallo Carina,

das nachfolgende Makro solltest du ausführen nachdem du deinen Pivot-Bericht per VBA erstellt hast ohne Wertfelder einzufügen oder du baust den Code an entsprechender Position in deinem Makro ein.

Falls es so nicht funktioniert, dann solltest du eine Beispieldatei mit ein paar TestDaten, Pivotbericht mit gewünschtem Aufbau und dein vorhandenes Makro.

LG
Franz
Sub Pivot_Wertfelder_einfuegen()
'
' Pivot_Wertfelder aus Spaltentiteln der Quelle generieren
'
  Dim pvTab As PivotTable, pvField As PivotField
  Dim rngZelle As Range
'
  Set pvTab = ActiveWorkbook.Worksheets("Tabelle2").PivotTables(1)
  
  With pvTab
    .RefreshTable
    For Each pvField In .DataFields
'      pvField.Orientation = xlHidden 'Falls vorher vorhandenen Felder entfernt werden sollen
    Next
    For Each rngZelle In ActiveWorkbook.Worksheets("Tabelle1").Range("G2:L2")
      .AddDataField .PivotFields(rngZelle.Text), "Summe von " & rngZelle.Text, xlSum
    Next
  End With
End Sub


Betrifft: AW: VBA Pivot Felder
von: Carina
Geschrieben am: 10.10.2020 12:39:11

Hallo lieber Franz!

Vielen, vielen lieben Dank für Deine Hilfe !!!! Das funktioniert perfekt !!!

Danke und einen guten Tag Dir noch :-)