Excel-Pivoteinstellung über Makro

Hallo,
kann man ein Makro über die Selektion von mehreren Pivottabellen in einer Tabelle kreieren? Und wenn ja, wie?
Bsp. mehrere Pivottabellen lassen die Selektion Monat zu. Ist es nun möglich mit „einer“ Eingabe alle Pivots auf einen bestimmten Monat einzustellen? Diese „eine“ Eingabe sollte aber VARIABEL sein.
Vorab schon vielen Dank für die Info!
LG
Bibi

ich hab sowas schon mal gemacht - ist aber länger her…
Im Prinzip kannst Du das meiste mit dem Makro Rekorder aufzeichnen…
Also einfach mal überall den gleichen Monat eingeben…
Dann musst Du nurnoch auslesen, welchen Monat Du einstellen willst und den Wert variabel ins Makro einbinden…

Erfordert natürlich ein wenig VBA Kenntnisse…

Einen fertigen Code wird man Dir hier vmtl nicht geben können.

Grüße
Munich

kann man ein Makro über die Selektion von mehreren
Pivottabellen in einer Tabelle kreieren? Und wenn ja, wie?
Bsp. mehrere Pivottabellen lassen die Selektion Monat zu. Ist
es nun möglich mit „einer“ Eingabe alle Pivots auf einen
bestimmten Monat einzustellen? Diese „eine“ Eingabe sollte
aber VARIABEL sein.

Hallo Bibi***.

zeichne mal ein makro auf während du da mit deinen PTs machst was du da willst und zeige hier den Code.
Vielleicht kann man den Code umstricken sodaß er variabel ist, auch ohne PT-Kenntnisse.

Gruß
Reinhard

Grüezi Bibi

kann man ein Makro über die Selektion von mehreren
Pivottabellen in einer Tabelle kreieren? Und wenn ja, wie?
Bsp. mehrere Pivottabellen lassen die Selektion Monat zu. Ist
es nun möglich mit „einer“ Eingabe alle Pivots auf einen
bestimmten Monat einzustellen? Diese „eine“ Eingabe sollte
aber VARIABEL sein.

Wenn die PTs alle im selben Tabellenblatt liegen und das Feld ‚Monat‘ im Seitenbereich abgelegt ist, dann kannst Du den folgenden VBA-Code vewenden, der dir die PTs gleich synchronisiert, wenn eine (egal welche) geändert wird:

Private Sub Worksheet\_PivotTableUpdate(ByVal Target As PivotTable)
Dim pt As PivotTable
Dim pf As PivotField
 On Error GoTo ErrorHandler
 Application.EnableEvents = False
 For Each pt In Me.PivotTables
 If pt.Name Target.Name Then
 For Each pf In Target.PageFields
 pt.PivotFields(pf.Value).CurrentPage = \_
 Target.PivotFields(pf.Value).CurrentPage.Value
 Next pf
 End If
 Next pt
ErrorHandler:
 Application.EnableEvents = True
End Sub


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -