# Excel VBA: Pivottabelle dynamisch erzeugen



## ThompB (6. Oktober 2010)

Hallo lieben Gemeinde!

Ich stehe vor meinem nächsten Problem und zwar möchte ich dynamisch eine Pivot-Tabelle erzeugen. Dafür hab ich mir ein Makro aufgezeichnet um das als Grundstruktur nutzen zu können. Darin möchte ich jetzt die PivotItems ändern.

Folgender Code wurde mir dabei generiert: 

```
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Stunden"), "Summe von Stunden", xlSum
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Projekt-Name")
         .PivotItems("065_Testphase").Visible = True
         .PivotItems("065_Testphase_1").Visible = True
         .PivotItems("065_Testphase_2").Visible = True
        (...)
```

Ich habe mir jetzt über eine Listbox in einer Userform die übergeben lassen, die selektiert werden sollen. Dafür habe ich mir jetzt einmal ein Array erstellt das jeweils die selektierten und nicht selektierten Elemente enthält:

strArray:
         .PivotItems("065_Testphase").Visible = True
         .PivotItems("065_Testphase_1").Visible = False
         .PivotItems("065_Testphase_2").Visible = False
         (...)

Jetzt würde ich mir gern das (Aus einer anderen Sub übergebenen) Array ausgeben lassen, Quasi:

ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Stunden"), "Summe von Stunden", xlSum
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Projekt-Name")
For i = 0 to UBound(strArray)
     strArray(i)
Next

Leider geht das ganz nicht, hat jemand eine Idee wie ich mir das ausgeben kann?

BTW: Ich habs auch versucht es mit einem String zu machen und alles hintereinander zu schreiben und dann einfach ausgeben lassen, klappte leider auch nicht.

Hoffe jemand kann mir Helfen!

Gruß Thomas


----------

