Das Problem
Wenn du Power Query via OfficeScript steuerst, läuft dein Script oft schneller durch, als Power Query seine Daten geladen hat. Eine eingebaute Wartefunktion gibt es in OfficeScript nicht.
Das Ergebnis: Weiterführende Scripte könnten gestartet werden. Der Nutzer weiß nicht, wann die Daten sicher geladen wurden.
Das führt zu fehlerhaften Auswertungen, leeren Tabellen oder Scripts, die auf Daten zugreifen, die noch nicht existieren. Wie löst du das, ohne auf externe Bibliotheken oder komplizierte Workarounds zurückzugreifen?
Die Lösung: Eine selbstüberwachende Statusanzeige
Der Trick ist simpel und braucht nur drei Zutaten: eine gelöschte Zelle, eine WENN()-Formel und eine bedingte Formatierung. Zusammen bauen sie dir eine Statusanzeige, die dem Nutzer in Echtzeit zeigt, ob Power Query noch läuft oder fertig ist.
Schritt für Schritt
Schritt 1: Script löscht den ersten Eintrag der Abfragetabelle
Bevor dein OfficeScript die Power Query Aktualisierung startet, löscht es den ersten Wert aus der Abfragetabelle. Damit ist die Zelle leer, solange Power Query noch lädt.
// Ersten Eintrag der Abfragetabelle leeren
const SHEET_Produkte = workbook.getWorksheet("Produkte");
SHEET_Produkte.getRange("A2").clear();
// Power Query Abfrage starten
workbook.refreshAllDataConnections();
Schritt 2: WENN()-Formel überwacht die Zelle
Auf einem separaten Statusblatt oder direkt neben deiner Tabelle legst du eine einfache WENN()-Formel an, welche eine Zelle der Abfragetabelle überwacht:
=WENN(Produkte!A2="";"Aktualisierung läuft";"Aktualisierung abgeschlossen")
Solange Power Query noch lädt und die Zelle leer ist, zeigt die Formel „Aktualisierung läuft…“. Sobald der erste Datensatz eingetragen wird, springt sie auf „Aktualisierung abgeschlossen“.
Schritt 3: Bedingte Formatierung macht den Status sichtbar
Damit der Nutzer den Status auf einen Blick erkennt, hinterlegst du die Statuszelle mit einer bedingten Formatierung:
- Rot wenn der Text „Aktualisierung läuft…“ enthält
- Grün wenn der Text „Aktualisierung abgeschlossen“ enthält
So sieht der Nutzer sofort: Rot = warten, Grün = weiterarbeiten. Kein Rätselraten mehr.

Bonus: Folge-Scripts automatisch sperren
Du kannst dieselbe Formel nutzen, um nachfolgende Scripts abzusichern. Lass dein Script zu Beginn prüfen, ob Power Query bereits fertig ist:
// Prüfen ob Power Query fertig ist
let statusZelle = workbook
.getWorksheet("PQ_Überwachung")
.getRange("A1").getValue();
if (statusZelle !== "Aktualisierung abgeschlossen") {
console.log("Power Query noch nicht fertig. Abbruch.");
return;
}
Damit brichst du das Script sauber ab, wenn die Daten noch nicht bereit sind. Kein Fehler, kein falsches Ergebnis einfach ein kontrollierter Stopp.
Auf einen Blick
| Baustein | Aufgabe |
| OfficeScript | Löscht ersten Eintrag vor der Aktualisierung |
| WENN()-Formel | Überwacht die Zelle und zeigt den Status an |
| Bedingte Formatierung | Rot = läuft noch, Grün = fertig |
| Script-Absicherung | Folge-Scripts prüfen den Status vor der Ausführung |
Fazit
Dieser Hack braucht keine externe Bibliothek, kein kompliziertes Polling und keine Sleep-Funktion. Mit einer gelöschten Zelle, einer WENN()-Formel und zwei Farben baust du dir eine zuverlässige Statusanzeige, die sowohl dem Nutzer als auch deinen Scripts sagt: jetzt ist es sicher weiterzumachen.
Tipp: Wenn du mehrere Power Query Abfragen hast, kannst du denselben Trick für jede Tabelle einzeln anwenden und die Statusformeln kombinieren z.B. mit einer UND()-Formel, die erst „Fertig“ zeigt, wenn alle Abfragen abgeschlossen sind.
Um den Office Script Teil zu testen, kannst du die Codeschnipsel direkt aus dem Beitrag nehmen und in ein neues Script kopieren.
Martin Reichelt ist Spezialist für Microsoft-Automatisierung und Verfechter der Citizen Developer Bewegung. Bei XelUp zeigt er, wie man das volle Potenzial von Excel ausschöpft und durch Power Automate effiziente Cloud-Workflows schafft, um wertvolle Lebenszeit im Job zurückzugewinnen.
