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

Forumthread: VBA Pivot Fehlermeldung nach refreshall

VBA Pivot Fehlermeldung nach refreshall
17.06.2019 14:58:43
Martin
Guten Tag,
ich aktualisiere Daten in einer xlsx Datei und speichere diese dann.
Beides über VBA Code. Die xlsx Datei verfügt über ein PowerPivot Datenmodell.
Excel aktuelle Office 365 64 bit Version.
Das Funktioniert auch alles. Öffne ich die Datei erneut und ändere z.B. einen Datenschnitt erhalte ich die Meldung:
Der Pivottable-bericht ist ungültig versuchen sie die daten zu aktualisieren.
Vermutlich ein Timing problem. Führe ich die Aktualisierung manuell durch tritt das Problem nicht auf.
Gibt es eine Möglichkeit erst das Datenmodell vollständig zu aktualisieren und dannach die Pivot Tabellen (ohne erneut einen Refresh der Hintergrundtabellen zu triggern)?
Ich habe schon versucht einne refresh der einzelnen Pivots zu machen das hilft aber nicht weil er immer die Datenquelle komplett neu abfragt.
Vielen Dank & Beste Grüße
Martin
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Pivot Fehlermeldung nach refreshall
18.06.2019 10:05:23
Luschi
Hallo Martin,
was der PivotCache ist, kann man hier nachlesen:
http://www.office-kompetenz.de/wp-content/uploads/files/Tutorial_Pivot-Cache.pdf
Wenn man von Außen per Vba die xlsx-Datei aktualisiert, wird dieser PivotCache nicht sofort aktualisiert und muß es per Vba selbst anstoßen, siehe:
https://docs.microsoft.com/de-de/office/vba/api/excel.pivotcache.refresh
Ein weiteres uraltes Kriegsleiden von Pivottabellen sind PivotItems, die eigentlich nicht mehr da sein dürften, weil die Daten dazu in der Ausgangstabelle bereits gelöscht wurden.
Sollten bei Dir also bei der Datenaktualisierung sogar Daten gelöscht werden, so muß man hier ebenfalls per Vba nachhelfen; wie das geht, steht hier:
http://www.j-hennekes.de/1298584.htm
Gruß von Luschi
aus klein-Paris
Anzeige
AW: VBA Pivot Fehlermeldung nach refreshall
18.06.2019 16:22:29
Martin
Super 1000 Dank. Probiere ich mal aus.
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA-Fehlermeldung bei PivotTables nach Refresh-All beheben


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei: Stelle sicher, dass Du die Datei mit dem PowerPivot-Datenmodell geöffnet hast.
  2. Aktualisiere das Datenmodell: Verwende den folgenden VBA-Code, um das Datenmodell zu aktualisieren:
    ThisWorkbook.Model.Refresh
  3. Refresh der PivotTables: Nachdem das Datenmodell aktualisiert wurde, kannst Du die PivotTables mit dem folgenden Code aktualisieren:
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
       Dim pt As PivotTable
       For Each pt In ws.PivotTables
           pt.RefreshTable
       Next pt
    Next ws
  4. Fehlerbehandlung einfügen: Um den Fehler "Der PivotTable-Feldname ist ungültig" zu vermeiden, füge eine Fehlerbehandlung hinzu, die sicherstellt, dass nicht mehr vorhandene PivotItems entfernt werden.

Häufige Fehler und Lösungen

  • Fehler: Der PivotTable-Feldname ist ungültig:

    • Ursache: Dieser Fehler tritt häufig auf, wenn die Datenquelle verändert wurde, z.B. durch das Löschen von Zeilen in der Ausgangstabelle.
    • Lösung: Stelle sicher, dass alle PivotItems, die nicht mehr existieren, entfernt werden, bevor die PivotTables aktualisiert werden.
  • Timing-Probleme beim Refresh:

    • Ursache: Wenn Du ActiveWorkbook.RefreshAll verwendest, kann es zu Timing-Problemen kommen, weil nicht alle Daten rechtzeitig aktualisiert werden.
    • Lösung: Verwende separate Refresh-Befehle für das Datenmodell und die PivotTables.

Alternative Methoden

  • Verwendung von RefreshAll: Du kannst auch den Befehl ActiveWorkbook.RefreshAll verwenden, jedoch kann dies problematisch sein, wenn die Datenquelle nicht synchron ist.
  • Manuelles Refresh: Wenn die automatischen Refresh-Befehle nicht funktionieren, versuche das manuelle Aktualisieren der PivotTables über das Excel-Menü.

Praktische Beispiele

  1. Einfaches Refresh-Script:

    Sub RefreshAllData()
       ThisWorkbook.Model.Refresh
       ActiveWorkbook.RefreshAll
    End Sub
  2. Refresh mit Fehlerbehandlung:

    Sub RefreshWithErrorHandling()
       On Error Resume Next
       ThisWorkbook.Model.Refresh
       Dim ws As Worksheet
       For Each ws In ThisWorkbook.Worksheets
           Dim pt As PivotTable
           For Each pt In ws.PivotTables
               pt.RefreshTable
           Next pt
       Next ws
       On Error GoTo 0
    End Sub

Tipps für Profis

  • Verwende PivotCache: Nutze PivotCache für mehr Kontrolle über die Aktualisierung von PivotTables.
  • Optimierung der Datenquelle: Achte darauf, dass Deine Datenquelle so optimiert ist, dass nur benötigte Daten geladen werden, um die Performance zu verbessern.
  • Regelmäßige Überprüfung: Überprüfe regelmäßig die Datenverbindungen und die Integrität der Datenquelle, um Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Fehler "der PivotTable-Feldname ist ungültig" vermeiden?
Eine Möglichkeit ist, sicherzustellen, dass alle Daten, die in der PivotTable verwendet werden, noch vorhanden sind. Entferne ungültige PivotItems vor dem Refresh.

2. Gibt es einen Unterschied zwischen ActiveWorkbook.RefreshAll und ThisWorkbook.Model.Refresh?
Ja, ActiveWorkbook.RefreshAll aktualisiert alle Datenquellen im Arbeitsbuch, während ThisWorkbook.Model.Refresh speziell das PowerPivot-Datenmodell aktualisiert.

3. Wie kann ich automatische Updates für PivotTables einrichten?
Du kannst VBA-Makros verwenden, um das Aktualisieren der PivotTables beim Öffnen der Datei oder in festgelegten Intervallen zu automatisieren.

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