Pivots auf B aktualisieren, wenn C aufgerufen wird
12.10.2018 10:53:02
Nordwestler
Ich kämpfe mit folgenden Problemchen bzw. suche verzweifelt nach Lösungen, die die Aktualisierung beschleunigen:
Ich habe eine Mappe mit einer ziemlich Datenbank, aus der mittels Spezialfilter bei Änderung des Eintrags in Zelle F3 der Startseite "Cockpit" selektierte Daten in andere Blätter (z.B. A1-A5) kopiert werden. Das klappt!
Auf jeder dieser Seiten basiert eine Seite mit diversen Pivottabellen (B1-B5). Das klappt auch!
Aus diesen Pivottabellen wird jeweils eine "Ausgabeseite" bestückt, die mit angehübschten Tabellen und Diagrammen eine Auswertung der Daten bereitstellt (C1-C5). Das klappt ebenfalls!
Im Moment werden diese Pivot-Seiten alle zusammen aktualisiert mit folgendem Code in DieseArbeitsmappe:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich1 As Range
Dim pt As PivotTable
Set Bereich1 = Range("F3")
If Not Intersect(Target, Bereich1) Is Nothing Then
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
End If
End Sub
Das dauert zwar eine kleine Weile, aber klappt soweit auch. Allerdings werden die PT jedes mal alle aktualisiert, wenn ich das Cockpit erneut aufrufe, auch wenn sich nichts auf der Seite geändert hat. Das kostet überflüssigerweise wertvolle Lebenszeit ;-)
Das zu beschleunigen ist nun mein Problemchen:
1) Kann man es verhindern, dass beim Aufruf des Cockpits wiederum alle PT aktualisiert werden? Wenn ja, wie?
Oder noch besser:
2) weil ja eine Aktualisierung nur notwendig ist, wenn eine Seite auch aufgerufen wird, dass auch nur dann die jeweiligen PT auf B1-B5 aktualisiert werden und nicht alle? Also beim Aufruf von C1 wird nur B1 aktualisiert, bei C2 nur B2 usw.
Ich hoffe, ich habe das einigermaßen verständlich beschrieben und würde mich freuen, wenn mir da jemand auf die Sprünge helfen könnte!
Vielen Dank schon mal im Voraus und viele Grüße aus dem sonnenverwöhnten Ammerland!