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

Forumthread: VBA fortsetzen nach PQ-Aktualisierung

VBA fortsetzen nach PQ-Aktualisierung
12.08.2022 13:56:53
Chris94
Hi zusammen,
beim Öffnen meiner Arbeitsmappe werden über einen VBA-Code alle meine Power Query Daten aktualisere. Die Problemaitk ist aber, dass diese oft im Hintergrund noch aktualisiert werden, während mein VBA-Code schon weiterarbeitet.
Da die PQ Daten der Kern des Prozesses ist, bzw. deren Aktualität, ist das ein riesen Problem für mich.
Ich habe nun bereits eine "Application.Wait" von 15 Sek. rein, aber das klappt nicht immer, dass die PQ Aktualisierung dann abgeschlossen ist.
Gibt es eine Lösung bzw. hat jemand eine Idee, wie man sicherstellen kann, dass der VBA Code erst weiterarbeitet, wenn wirklich die Hintergrundaktualisierung von PQ beendet ist?
Zum Aktualisieren meiner PQ Tabellen verwende ich "ActiveWorkbook.RefreshAll".
Vielen Dank im Voraus!
Gruß,
Chris
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA fortsetzen nach PQ-Aktualisierung
12.08.2022 14:11:37
Charly
Hi Chris
In den Eigenschaften der Abfragen, den Haken bei "Aktualisierung im Hintergrund zulassen" raus.
Gruß Charly
Manchmal ist es so einfach. Danke Charly owT
12.08.2022 15:15:59
Chris94
.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA fortsetzen nach Power Query-Aktualisierung


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Navigiere zu deinem VBA-Projekt: Wähle das entsprechende Projekt im Projektfenster aus.
  3. Finde das Modul mit deinem Code: Doppelklicke auf das Modul, in dem dein Code zur Aktualisierung der Power Query-Daten liegt.
  4. Aktualisiere deine Abfragen: Stelle sicher, dass du ActiveWorkbook.RefreshAll verwendest, um alle Abfragen zu aktualisieren.
  5. Deaktiviere die Hintergrundaktualisierung: Gehe zu den Eigenschaften der Power Query-Abfragen und entferne den Haken bei "Aktualisierung im Hintergrund zulassen". Dies sorgt dafür, dass der Excel VBA-Code auf die vollständige Aktualisierung wartet.
  6. Füge eine Überprüfung hinzu: Um sicherzustellen, dass der VBA-Code erst fortfährt, wenn die Aktualisierung abgeschlossen ist, kannst du eine Schleife einfügen, die überprüft, ob die Aktualisierung noch läuft.

    Beispielcode:

    Do While ActiveWorkbook.Connections("DeinePQVerbindung").Refreshing
       DoEvents
    Loop

Häufige Fehler und Lösungen

  • Power Query aktualisiert nicht: Stelle sicher, dass du die "Aktualisierung im Hintergrund zulassen"-Option deaktiviert hast. Andernfalls kann es sein, dass der Code weiterläuft, bevor die Daten aktualisiert sind.

  • VBA-Code läuft zu früh: Wenn der Code nicht wartet, bis die Aktualisierung abgeschlossen ist, könnte das daran liegen, dass die Überprüfung auf Refreshing nicht korrekt implementiert ist. Überprüfe deinen Code und stelle sicher, dass die Schleife korrekt ist.


Alternative Methoden

  • Verwendung von Application.Wait: Obwohl dies nicht immer zuverlässig ist, kannst du es in Kombination mit der oben genannten Schleife verwenden.

  • Ereignisgesteuertes Programmieren: Du kannst auch ein Ereignis erstellen, das ausgelöst wird, wenn die Aktualisierung abgeschlossen ist. Dies erfordert jedoch ein tieferes Verständnis von VBA.


Praktische Beispiele

Ein einfaches praktisches Beispiel zur Überprüfung der Aktualisierung könnte so aussehen:

Sub AktualisiereUndWarte()
    ActiveWorkbook.RefreshAll
    Do While ActiveWorkbook.Connections("DeinePQVerbindung").Refreshing
        DoEvents
    Loop
    ' Hier folgt dein weiterer VBA-Code
End Sub

Stelle sicher, dass du "DeinePQVerbindung" durch den tatsächlichen Namen deiner Verbindung ersetzt.


Tipps für Profis

  • Nutze DoEvents: Dies gibt Excel die Möglichkeit, andere Aufgaben zu erledigen, während dein VBA-Code wartet. So bleibt Excel reaktionsfähig.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Code, um unerwartete Probleme während der Aktualisierung zu vermeiden.


FAQ: Häufige Fragen

1. Was mache ich, wenn meine Power Query-Daten immer noch nicht aktualisiert werden?
Überprüfe die Verbindungseinstellungen und stelle sicher, dass die Abfragen korrekt konfiguriert sind. Deaktivere die Hintergrundaktualisierung, um sicherzustellen, dass der VBA-Code wartet.

2. Kann ich die Aktualisierung im Hintergrund wieder aktivieren, nachdem ich den VBA-Code ausgeführt habe?
Ja, du kannst die Option wieder aktivieren, nachdem der VBA-Code abgeschlossen ist. Achte jedoch darauf, dass du in der Zwischenzeit sicherstellst, dass die Aktualisierung der Daten abgeschlossen ist, bevor du fortfährst.

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