Discussion:
Pivot Tabelle automatisch aktualisieren
(zu alt für eine Antwort)
Andreas
2008-09-03 12:32:51 UTC
Permalink
Hallo!

Gibt es eine Möglichkeit eine Pivot Tabelle immer dann automatisch zu
aktualisieren, wenn eine Zelle im Quellbereich, welche Bestandteil der
Pivot Tabelle ist, verändert wird?

Gruß
Andreas
t***@gmail.com
2008-09-03 12:49:34 UTC
Permalink
Grüezi Andreas
Post by Andreas
Gibt es eine Möglichkeit eine Pivot Tabelle immer dann automatisch zu
aktualisieren, wenn eine Zelle im Quellbereich, welche Bestandteil der
Pivot Tabelle ist, verändert wird?
Ja, die gibt es - Du kannst das Worksheet_Change()-Ereignis verwenden
und auf den Quellbereich der PT beschränken.
Darin löst Du dann den Refresh der PT aus.

Wenn die PT auf einem anderen Tabellenblatt liegt würde ich allerdings
eher das Worksheet_Activate()-Ereignis jenes Blattes verwenden; die
Eingabe wird dann (gerade bei grossen PT's) nicht immer wieder von der
Aktualisierung unterbrochen.

Beispiele zum Code findest Du hier in der NG; wenn Du uns die Namen
der Tabellenblätter und/oder die Bereiche verrätst bekommst Du sicher
auch etwas kopierfähges 'geliefert'.

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Andreas
2008-09-04 09:29:32 UTC
Permalink
Hallo Thomas!
Post by t***@gmail.com
Beispiele zum Code findest Du hier in der NG; wenn Du uns die Namen
der Tabellenblätter und/oder die Bereiche verrätst bekommst Du sicher
auch etwas kopierfähges 'geliefert'.
Die PTs liegen teilweise auf demselben Blatt wie die Quelldaten, als
auch auf anderen Blättern.

Die Quelldaten liegen auf dem Tabellenblatt "A" im Bereich $A:$L.

Muss ich dann den VBA Code in jedes relevante Tabellenblatt kopieren?

Danke vorab und Gruß
Andreas
t***@gmail.com
2008-09-04 10:03:55 UTC
Permalink
Grüezi Andreas
Post by Andreas
Die PTs liegen teilweise auf demselben Blatt wie die Quelldaten, als
auch auf anderen Blättern.
Die Quelldaten liegen auf dem Tabellenblatt "A" im Bereich $A:$L.
Muss ich dann den VBA Code in jedes relevante Tabellenblatt kopieren?
Die folgenden Zeilen kannst du in 'Diese Arbeitsmappe' kopieren; sie
aktualisieren alle Pivot-Ttabellen eines Tabellenblattes wenn Du
dieses aktivierst:


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.EnableEvents = False
Dim pt As PivotTable
For Each pt In Sh.PivotTables
pt.PivotCache.Refresh
Next pt
Application.EnableEvents = True
End Sub

Bei den PTs auf dem gleichen Blatt wie die Quelldaten müsstest Du dann
kurz ein anderes Blatt anwählen und zurück wechseln.

Das macht aber die Dateneingabe flüssig(er), da Du nicht jedesmal
warten musst, bis die PTs aktualisiert worden sind - aber auch das
kann natürlich noch automatisiert werden.

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -

Loading...