Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Schleife um ein Pivotfield zu durchlaufen
#1
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


Angehängte Dateien
.xlsm   Example11.xlsm (Größe: 370,93 KB / Downloads: 6)
Antworten Top
#2
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
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
Antworten Top
#4
Zitat:Wie kann man Ihren Vorschlag modifizieren?

Code analysieren (Gehirnmäßig) und anpassen (Handmäßig).
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste