Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PivotDaten per VBA zuweisen

PivotDaten per VBA zuweisen
10.08.2017 15:48:38
Luggas
Guten Tag liebe Herbers Excel Gemeinde,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PivotDaten per VBA zuweisen
10.08.2017 21:46:27
Robert
Hallo Luggas,
nachstehender Code müsste in dem Tabellenblatt AR die entsprechenden Formeln für alle Monate und Servicearten einfügen:
Sub TabellenFuellen()
Dim Serviceart
Dim Monat
Dim iZeile As Integer, iSpalte As Integer
Monat = Array("Jan 17", "Feb 17", "Mrz 17", "Apr 17", "Mai 17", "Jun 17", "Jul 17", "Aug 17", " _
Sep 17", "Okt 17", "Nov 17", "Dez 17")
Serviceart = Array("A", "B", "CAO")
With Worksheets(AR) 'Argentinia
For iZeile = 0 To UBound(Monat)
For iSpalte = 0 To UBound(Serviceart)
.Cells(iZeile * 2 + 7, iSpalte + 2).Formula = _
"=GETPIVOTDATA(""Chargeable Weight"",'Pivot CCW'!R5C1,""SERVICE LEVEL"",""" _
& Serviceart(iSpalte) & """,""BLG ENDE MONAT"",""" & Monat(iZeile) _
& """,""LKZ nach Route"",""AR"")"
Next iSpalte
Next iZeile
End With
End Sub

Gruß
Robert
Anzeige
AW: PivotDaten per VBA zuweisen
16.08.2017 10:10:01
Luggas
Hallo Robert,
super vielen Dank!! Ich musste für mein Problem nur noch die Zeilen und Spalten tauschen und habe noch ein Abschnitt hinzugefügt, der mir eine "Null" anstatt "#Bezug" ausgibt, da die Werte für August-Dezember noch ausstehen.
Beste Grüße,
Lukas

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige