Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Pivot-Tabelle mit Makro anpassen

VBA: Pivot-Tabelle mit Makro anpassen
27.05.2016 17:28:47
Honigdachs
Liebes Forum,
ich habe eine Pivot-Tabelle und habe folgendes Makro mit dem Rekorder aufgezeichnet:
Sub pivot_tables()
Dim location As String
Dim year As Integer
location = Worksheets("event detection").Range("B1")
ActiveSheet.PivotTables("PivotTable1").PivotFields("Freiburg 2017").Orientation = xlHidden
ActiveSheet.PivotTables("PivotTable1").PivotFields("Freiburg 2016").Orientation = xlHidden
ActiveSheet.PivotTables("PivotTable1").PivotFields("Freiburg 2015").Orientation = xlHidden
ActiveSheet.PivotTables("PivotTable1").PivotFields("Freiburg 2014").Orientation = xlHidden
ActiveSheet.PivotTables("PivotTable1").PivotFields("Freiburg 2013").Orientation = xlHidden
ActiveSheet.PivotTables("PivotTable1").PivotFields("Freiburg 2012").Orientation = xlHidden
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2012"), "Summe von Kiel 2012", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2013"), "Summe von Kiel 2013", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2014"), "Summe von Kiel 2014", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2015"), "Summe von Kiel 2015", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2016"), "Summe von Kiel 2016", xlSum
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable1").PivotFields("country").AutoSort _
xlDescending, "Summe von Kiel 2015"
End Sub


Nur diese 6 Felder gab es und ich habe bei allen das Häckchen manuell rausgenommen in der Feldliste während der Aufzeichnung.
Nun will ich ein Makro schreiben, das im PivotTable1 unabhängig vom Feldnamen alle Felder auf xlHidden setzt und aus einer festen range (eine Zelle mit location, hier: Kiel z. B. aus einem anderen event detection in B1) und aus einer variabel langen anderen range (die Jahre aus der Liste im sheet event detection in B19:B23, hier die Jahre 2012 bis 2016) sich die Informationen so zusammensetzt, dass er die richtigen Feldnamen auswählt ....
.... und als ob das schon nicht reicht noch die Tabelle nach dem Element absteigend sortiert, die Informationen unter sich hat. (Hier zum Beispiel sortiert er nach Kiel 2015, weil Kiel 2016 noch keine Informationen hat.)
Das mit location habe ich ja schon mal, aber wie geht es weiter?
Viele Grüße,
Kürsat

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Pivot-Tabelle mit Makro anpassen
27.05.2016 18:14:29
Honigdachs

Sub pivot_tables()
Dim PT As PivotTable, PTField As PivotField
Dim location As String
Dim year As Integer
Set PT = Sheets("scorecard data - 1").PivotTables("PivotTable1")
location = Worksheets("event detection").Range("B1")
With PT
.ManualUpdate = True
For Each PTField In .DataFields
PTField.Orientation = xlHidden
Next PTField
.ManualUpdate = False
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2012"), "Summe von Kiel 2012", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2013"), "Summe von Kiel 2013", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2014"), "Summe von Kiel 2014", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2015"), "Summe von Kiel 2015", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " 2016"), "Summe von Kiel 2016", xlSum
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable1").PivotFields("country").AutoSort _
xlDescending, "Summe von Kiel 2015"
End Sub

Das mit dem Rausnehmen habe ich hinbekommen.
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige