Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Power Query Abfragen aktualisieren (VBA)

Power Query Abfragen aktualisieren (VBA)
28.03.2023 11:34:41
Sven

Guten Tag,

ich habe in einer Excel-Datei zwei Tabellenblätter, die ich mit Hilfe von Power Query zusammenführe. Die Abfrage wird auf einem neuen Tabellenblatt ausgegeben.

Nun möchte ich gerne mit diesen Daten innerhalb eines Makros weiterarbeiten.

Um sämtliche Daten zu aktualisieren, nutze ich den folgenden Code: "ActiveWorkbook.RefreshAll"

Mein Problem ist nun, dass die Daten aus der Abfrage immer erst dann aktualisiert angezeigt werden, wenn ich die MsgBox bestätigt habe bzw. der Code komplett durchgelaufen ist.

Versucht habe ich bereits folgendes:
- Application.ScreenUpdating = True (wird am Anfang deaktiviert)
- Application.Calculation = xlCalculationManual in Verbindung mit Application.Calculate (wird am Anfang deaktiviert)
- Hinterlegung eines Timers, um der Aktualisierung Zeit zu geben
- Aktivieren von unterschiedlichen Tabellenblättern während des Makros
- Aufteilen des Codes in kleinere Prozeduren und Zusammenfassung in einer Main-Prozedur

Alles bisher ohne Erfolg. Aktuell funktioniert es nur, wenn ich erst Makro 1 ausführe (hier steckt der RefreshAll drin) und dann manuell Makro 2 starte.

In der Datei sind auch noch andere Pivots, die sich nicht aus Power Query-Abfragen befüllen. Dort funktioniert es einwandfrei in einer Prozedur.

Hat jemand eine Idee? Würde mich sehr freuen!

Viele Grüße
Sven

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Power Query Abfragen aktualisieren (VBA)
28.03.2023 12:08:18
Rudi Maintaire
Hallo,
nimm der Abfrage die Eigenschaft 'Aktualisierung im Hintergrund zulassen' weg.

und dann manuell Makro 2 starte
Könntest du auch aus Makro1 heraus starten.

Gruß
Rudi


AW: Power Query Abfragen aktualisieren (VBA)
28.03.2023 12:18:48
Sven
Hallo Rudi,

große Klasse! Genau das wars, vielen Dank!!

Viele Grüße
Sven

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Power Query Abfragen aktualisieren mit VBA


Schritt-für-Schritt-Anleitung

Um deine Power Query Abfragen in Excel automatisch zu aktualisieren, kannst du den folgenden VBA-Code verwenden. Dies ist besonders nützlich, wenn du mit großen Datenmengen arbeitest und sicherstellen möchtest, dass deine Abfragen immer auf dem neuesten Stand sind.

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

  2. Erstelle ein neues Modul, indem du im Projektfenster mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" klickst und "Einfügen" > "Modul" auswählst.

  3. Füge den folgenden Code ein:

    Sub AktualisierePowerQuery()
       Application.ScreenUpdating = False
       Application.Calculation = xlCalculationManual
    
       ' Alle Abfragen aktualisieren
       ActiveWorkbook.RefreshAll
    
       Application.ScreenUpdating = True
       Application.Calculation = xlCalculationAutomatic
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um deine Daten zu aktualisieren.


Häufige Fehler und Lösungen

  1. Power Query aktualisiert nicht: Stelle sicher, dass die Eigenschaft „Aktualisierung im Hintergrund zulassen“ für deine Abfrage deaktiviert ist. Dies kannst du in den Abfrageeinstellungen ändern.

  2. Makro läuft nicht korrekt: Wenn das Makro nicht wie gewünscht funktioniert, überprüfe, ob andere Makros im Konflikt stehen. Es kann hilfreich sein, den Code in kleinere Prozeduren aufzuteilen.

  3. Daten werden erst nach Bestätigung angezeigt: Dies kann daran liegen, dass Excel die Aktualisierung im Hintergrund zulässt. Deaktiviere diese Option, um die Daten sofort zu sehen.


Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch die folgenden Methoden ausprobieren:

  • Power Query automatisch aktualisieren: Gehe zu den Abfrageeinstellungen und aktiviere die Option „Abfrage beim Öffnen der Datei aktualisieren“.
  • Pivot-Tabellen automatisch aktualisieren: Füge in die Pivot-Tabellen-Einstellungen hinzu, dass sie beim Öffnen der Datei aktualisiert werden.

Praktische Beispiele

Angenommen, du hast eine Excel-Datei mit zwei Tabellenblättern, die du mit Power Query zusammenführst. Um die Abfrage automatisch zu aktualisieren, kannst du die oben genannten Schritte befolgen und die Abfrage mit dem Makro AktualisierePowerQuery aufrufen.

Wenn du eine Abfrage mit VBA erstellst, kannst du auch den Befehl Worksheets("Tabelle1").Calculate verwenden, um sicherzustellen, dass alle Berechnungen korrekt durchgeführt werden.


Tipps für Profis

  • Verwende Application.Wait oder DoEvents, um sicherzustellen, dass die Aktualisierung der Abfragen abgeschlossen ist, bevor du mit weiteren Berechnungen fortfährst.
  • Halte deine Abfragen übersichtlich und vermeide komplexe Verknüpfungen, um die Ladezeiten zu minimieren.
  • Experimentiere mit der QueryTable-Objekt in VBA, um spezifische Abfragen zu aktualisieren.

FAQ: Häufige Fragen

1. Wie kann ich die Abfrage automatisch aktualisieren, wenn ich die Datei öffne?
Du kannst die Option „Abfrage beim Öffnen der Datei aktualisieren“ in den Abfrageeinstellungen aktivieren.

2. Was tun, wenn die Abfrage nicht aktualisiert wird?
Überprüfe, ob die Eigenschaft „Aktualisierung im Hintergrund zulassen“ aktiviert ist. Deaktiviere sie, um die Aktualisierung zu erzwingen.

3. Kann ich mehrere Abfragen gleichzeitig aktualisieren?
Ja, mit ActiveWorkbook.RefreshAll werden alle Abfragen gleichzeitig aktualisiert.

4. Wie kann ich die Aktualisierung der Pivot-Tabellen automatisieren?
Aktiviere die Option „Pivot-Tabelle beim Öffnen der Datei aktualisieren“ in den Pivot-Tabellen-Einstellungen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige