PivotDaten per VBA zuweisen
10.08.2017 15:48:38
Luggas
ich beschäftige mich schon länger mit Excel und versuche gerade mich an die ersten VBA Macros. In meinem derzeitigen Projekt wird aus einer Datenmenge von rund 100.000 Zeilen und 20 Spalten ein Pivot erzeugt. Die darin enthaltenen Werte sollen auf 16 verschiedene Arbeitsblätter, je nach Land, in die bestimmten Tabellenfelder kopiert werden.
Jedes Arbeitsblatt ist identisch aufgebaut, das heißt auf jedem Arbeitsbaltt findet man dieselbe Tabelle an derselben Position. Als Spaltenbezeichnung gelten die einzelnen Monate Jan-Dez 17 und für die Zeilenbezeichnung gibt es bestimmte Servicearten (A, B, CAO..)
Die Auswertung erfolgt monatlich und jeden Monat kommt ein neuer Wert in die einzelnen Tabellen hinzu.
Zur Zeit wende ich folgenden Code (Ausschnitt) an:
Sub TabellenFuellen()
With Worksheets(AR) 'Argentinia
' Datenreihe für B-Service CCW
.Cells(7, 2).Formula = _
"=GETPIVOTDATA(""Chargeable Weight"",'Pivot CCW'!R5C1,""SERVICE LEVEL"",""B"",""BLG ENDE _
MONAT"",""JAN 2017"",""LKZ nach Route"",""AR"")"
.Cells(7, 3).Formula = _
"=GETPIVOTDATA(""Chargeable Weight"",'Pivot CCW'!R5C1,""SERVICE LEVEL"",""B"",""BLG ENDE _
MONAT"",""FEB 2017"",""LKZ nach Route"",""AR"")"
' Datenreihe für CAO-Service CCW
.Cells(9, 2).Formula = _
"=GETPIVOTDATA(""Chargeable Weight"",'Pivot CCW'!R5C1,""SERVICE LEVEL"",""CAO"",""BLG ENDE _
MONAT"",""JAN 2017"",""LKZ nach Route"",""AR"")"
.Cells(9, 3).Formula = _
"=GETPIVOTDATA(""Chargeable Weight"",'Pivot CCW'!R5C1,""SERVICE LEVEL"",""CAO"",""BLG ENDE _
MONAT"",""FEB 2017"",""LKZ nach Route"",""AR"")"
'der Länge wegen, habe ich den Rest hier nicht mehr veröffentlicht
End With
End Sub
Wie ihr seht muss ich jeden Monat eine neue Programmzeile hinzufügen, das ganze für jedes Arbeitsblatt und Service - auf Dauer sehr zeitaufwendig und unübersichtlich.Ich bin mir fast sicher, dass es dafür eine Schleifenfunktion gibt. Momentan kriege ich die leider noch nicht geschrieben und wollte hier um Hilfe bitte. Für jeden Tip wär ich dankbar und versuch darauf aufbauend das Macro effizienter zu gestalten.
Beste Grüße,
Luggas