Clever-Excel-Forum

Normale Version: VBA Schleife um ein Pivotfield zu durchlaufen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag
Im Anhang habe ich eine Datei, die eine Pivottabelle durchläuft und zwar das Pivotfield "Basin".
Ich habe folgende Probleme, die ich leider nicht lösen kann:
Zum existierenden Beispiel:
a) Wenn das letzte Pivotitem durchlaufen ist, sollte es wieder auf "(All)" zurückspringen. Tut es aber nicht. Lösung?
b) Wie kann auch das Ergebnis von "(All)" in das andere Tabellenblatt geschrieben werden?
Modifizierung des Beispiels:
Ich möchte nun, dass die Schleife nicht mehr "Basin" durchläuft, sondern jedes Pivotitem in "ProductGroup" und die jeweiligen Resultate in das andere Tabellenblatt schreibt.
Was muss ich dazu im existierenden VBA code ändern?
Vielen Dank für jegliche Hilfe
Heinz
z.B.

Code:
Sub M_snb()
   With Sheets("pivot").PivotTables("PivotTable1").PivotFields("Basin")
     n = .PivotItems.Count + 1
     For Each it In .PivotItems
       p = p + 1
       it.Parent.CurrentPage = it.Name
       For j = 3 To 6
         With Sheets("Summary")
           .Cells(j - 1, 1) = it.Name
           .Range("B1:I1").Offset(p + n * (j - 3)) = Sheets("GAP").Range("D3:K3").Offset(4 * (j - 3)).Value
         End With
       Next
     Next
     .CurrentPage = "(All)"
     .EnableMultiplePageItems = True
   End With
End Sub
Hallo snb,
Vielen Dank für die schnelle Antwort zu Punkt a).
Prinzipiell funktioniert der code, allerdings schreibt es mir in Spalte A im Tabellenblatt "Summary" in die vier ersten Zeilen A2 bis A5 stets den Namen des letzten pivotitems von Basin, das durchlaufen wird.
Dort in Spalte A sollte natürlich jeweils der Name des einzelnen durchlaufenen pivotitems von "Basin" stehen, also mit dem VBA code mit erfasst werden
Wie kann man Ihren Vorschlag modifizieren?
Gruss
Heinz
Zitat:Wie kann man Ihren Vorschlag modifizieren?

Code analysieren (Gehirnmäßig) und anpassen (Handmäßig).