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

Forumthread: Pivottabellen aktualisieren (VBA)

Pivottabellen aktualisieren (VBA)
David
Hallo zusammen,
ich habe in einer Tabelle mehrere Blätter mit Pivottabellen, die alle die gleichen Daten verwenden, nur halt vom Layout jeweils unterschiedlich sind. Wenn sich nun die Datentabelle ändert, möchte ich alle Pivottabellen in einem Rutsch aktualisieren.
Der Makrorecorder liefert mir nur den folgenden Code:
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable3").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable3").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable3").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
wobei die ersten beiden Pivots gemeinsam in einer Tabelle sind, alle anderen jeweils einzeln in "ihrer" Tabelle.
Mir stellt sich nun die Frage, wie ich die einzelnen Pivottabellen jeweils anspreche. Eine Schleife über alle Sheets bekomme ich ja noch hin, aber es sieht so aus, als ob die Nummerierung der Pivottabellen nicht über die ganze Mappe durchgängig ist, sondern in jedem Blatt neu beginnt. Wieso aber ist die Nummer in jedem Blatt nicht "Pivottable1"?
Falls mir jemand auf die Sprünge helfen könnte, wäre ich sehr dankbar.
Gruß
David
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Pivottabellen aktualisieren (VBA)
15.04.2010 09:50:27
Rudi
Hallo,
Schema:
for each wks in worksheets
for each pt in wks.pivottables
pt.pivotcache.refresh
next
next
Gruß
Rudi
AW: Pivottabellen aktualisieren (VBA)
15.04.2010 09:55:17
David
Hallo Rudi,
da hätte "man" (also ich) ja auch selbst drauf kommen können.
Funzt natürlich, Danke.
Gruß
David
AW: Pivottabellen aktualisieren (VBA)
15.04.2010 11:26:24
Jutta
Hallo David,
ich habe einen Button hinterlegt:
Sub RefreshPivot()
Dim p As PivotTable
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
For Each p In ws.PivotTables
p.RefreshTable
Next
Next
End Sub
Gruß
Jutta
Anzeige
AW: Pivottabellen aktualisieren (VBA)
15.04.2010 11:34:29
David
Hallo Jutta,
schon ok, da ich das in anderen Code integrieren muss, ist eine Lösung per Button nicht gewollt.
Was mir aber an deinem Code auffällt:
Was ist der Unterschied zwischen .RefreshTable und .PivotCache.Refresh?
Gruß
David
AW: Pivottabellen aktualisieren (VBA)
15.04.2010 12:02:13
Rudi
Hallo,
.Refreshtable aktualisiert die Tabelle, .Pivocache.Refresh die ihr zugrunde liegende Datenbasis.
Das bringt mich auf eine Idee. Da unterschiedliche Tabellen auf dem gleichen Cache beruhen können, muss man nur die Caches aktualisieren.
Sub tt()
Dim pc As PivotCache
For Each pc In ActiveWorkbook.PivotCaches
pc.Refresh
Next
End Sub

Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Pivottabellen in Excel automatisch aktualisieren mit VBA


Schritt-für-Schritt-Anleitung

Um alle Pivottabellen in Deinem Excel-Dokument mit VBA zu aktualisieren, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein, um alle Pivottabellen zu aktualisieren:

    Sub AllePivotAktualisieren()
       Dim ws As Worksheet
       Dim pt As PivotTable
    
       For Each ws In ActiveWorkbook.Worksheets
           For Each pt In ws.PivotTables
               pt.PivotCache.Refresh
           Next pt
       Next ws
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Du kannst nun das Makro ausführen, um alle Pivottabellen in Deinem Workbook zu aktualisieren.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass alle Pivottabellen korrekt benannt sind und in den entsprechenden Arbeitsblättern vorhanden sind.

  • Fehler: Pivottabelle wird nicht aktualisiert
    Lösung: Überprüfe, ob die Datenquelle der Pivottabelle korrekt ist und die Daten aktualisiert wurden.

  • VBA läuft nicht
    Lösung: Stelle sicher, dass Makros in Excel aktiviert sind. Gehe dazu in die Excel-Optionen und aktiviere die Makros.


Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst Du Pivottabellen auch manuell aktualisieren:

  1. Klicke auf die Pivottabelle.
  2. Gehe zum Tab Analyse (oder PivotTable-Analyse in älteren Versionen).
  3. Klicke auf Aktualisieren. Du kannst auch die Tastenkombination ALT + F5 verwenden.

Zusätzlich kannst Du die Pivottabelle so einstellen, dass sie automatisch aktualisiert wird, wenn sich die zugrunde liegenden Daten ändern.


Praktische Beispiele

  • Makro für automatisches Aktualisieren:
    Du kannst auch einen Button hinzufügen, um das Makro auszuführen. Füge einen Button über Entwicklertools hinzu und verlinke ihn mit dem Makro AllePivotAktualisieren.

  • PivotCache verwenden:
    Eine effizientere Methode zur Aktualisierung aller Pivottabellen könnte so aussehen:

    Sub PivotCacheAktualisieren()
       Dim pc As PivotCache
    
       For Each pc In ActiveWorkbook.PivotCaches
           pc.Refresh
       Next pc
    End Sub

Diese Methode aktualisiert alle PivotCaches und somit alle Pivottabellen, die darauf basieren.


Tipps für Profis

  • Nutze die Funktion .PivotCache.Refresh, um die zugrunde liegenden Daten der Pivottabellen zu aktualisieren, ohne jede einzelne Tabelle manuell ansprechen zu müssen.
  • Du kannst auch eine Kombination aus activesheet.pivottables und Schleifen verwenden, um gezielt bestimmte Pivottabellen zu aktualisieren.
  • Denke daran, Deine Makros regelmäßig zu speichern, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen .RefreshTable und .PivotCache.Refresh?
.RefreshTable aktualisiert die Pivottabelle selbst, während .PivotCache.Refresh die zugrunde liegende Datenquelle aktualisiert.

2. Kann ich Pivottabellen automatisch aktualisieren lassen?
Ja, Du kannst die Option "Daten automatisch aktualisieren bei Änderung" in den Pivottabelleneinstellungen aktivieren.

3. Wie kann ich ein Makro zur Aktualisierung der Pivottabellen auf einen Button legen?
Füge einen Button über die Entwicklertools hinzu und weise ihm das Makro zu, das Du erstellt hast, um alle Pivots zu aktualisieren.

4. Welche Excel-Version benötige ich?
Der beschriebene VBA-Code funktioniert in Excel-Versionen ab Excel 2007 und später.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige