Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro starten erst wenn Excel volls. akt.

Forumthread: Makro starten erst wenn Excel volls. akt.

Makro starten erst wenn Excel volls. akt.
16.11.2017 16:31:37
Benedikt
Hallo liebe Excel Freunde,
ich habe folgendes Problem.
In einem Excel File werden beim Öffnen zahlreiche Verküpfungen aktualisiert und diese Datei braucht einige sec bis alles vollständig geladen ist.
Nun möchte ich, dass ein Makro erst starten, sobald die Datei alles aktualisiert hat.
Nach dem ersten Makro soll nun ein zweites ausgeführt werden. Dieses soll wieder warten, bis das erste vollständig durchgelaufen ist.
Bisherigen Versuche:
1. ich habe shcon versucht mit einem Timer zu arbeiten, dies ist alelrdings sehr unsauber, da die Aktualisierungen unterschiedlich lange dauern.
2. Außerdem habe ich versucht es über eine Shell Abfrage zu lösen. Allerdings wartet das Programm nicht, bis alles aktualisiert ist, sondern nur, bis die Datei geöffnet ist (was ja auch logisch ist)
Hat jmd eine Idee, wie man dieses Problem angehen kann?
Viele Dank euch allen schon einmal!
Benedikt
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro starten erst wenn Excel volls. akt.
16.11.2017 16:36:15
EtoPHG
Hallo Benedikt,
Die Verbindungen haben in ihren Eigenschaften eine, die aussagt ob die Aktualisierung im Hintergrund ablaufen soll. Diese musst du so schalten, dass das eben nicht zugelassen ist. Damit wird Excel jegliche anderen Aktionen bis zur vollständigen Aktualisierung unterbinden.
Gruess Hansueli
Anzeige
AW: Makro starten erst wenn Excel volls. akt.
16.11.2017 16:47:00
Benedikt
Hallo Hansueli,
super, danke für deine schnelle Antwort.
Meinst Du

ThisWorkbook.RefreshAll
Application.CalculateUntilAsyncQueriesDone
Benedikt
AW: Makro starten erst wenn Excel volls. akt.
16.11.2017 17:20:26
Luschi
Hallo Benedikt.
jede Abfrage besitzt diese Eigenschaft: BackgroundQuery - und die muß auf False gesetzt werden.
Public Sub RefreshQuery_DisableBackground()
Dim ws As Worksheet
Dim qt As QueryTable, lstObj As ListObject
For Each ws In ThisWorkbook.Worksheets
For Each qt In ws.QueryTables
qt.Refresh False 'BackgroundQuery = False
Next
'alle Abfragen, die ihre Ergebnisse in eine formatierte Tabelle schreiben
For Each lstObj In ws.ListObjects
lstObj.QueryTable.Refresh False
Next lstObj
Next
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro erst starten, wenn Excel vollständig aktualisiert ist


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass ein Makro erst startet, wenn Excel alle Aktualisierungen abgeschlossen hat, kannst du die folgenden Schritte durchführen:

  1. Aktiviere die Hintergrundaktualisierungen:

    • Überprüfe die Eigenschaften deiner Verbindungen. Stelle sicher, dass die Aktualisierung im Hintergrund deaktiviert ist. Dies kannst du tun, indem du die BackgroundQuery-Eigenschaft auf False setzt.
  2. Verwende das richtige VBA-Skript:

    • Implementiere den folgenden VBA-Code in dein Makro, um sicherzustellen, dass alle Abfragen aktualisiert werden und das Makro erst nach der vollständigen Aktualisierung fortfährt:

      Public Sub RefreshAndCalculate()
      Dim ws As Worksheet
      Dim qt As QueryTable, lstObj As ListObject
      
      For Each ws In ThisWorkbook.Worksheets
         For Each qt In ws.QueryTables
             qt.Refresh False 'BackgroundQuery = False
         Next
      
         For Each lstObj In ws.ListObjects
             lstObj.QueryTable.Refresh False
         Next lstObj
      Next
      
      ThisWorkbook.RefreshAll
      Application.CalculateUntilAsyncQueriesDone
      End Sub
  3. Führe das Makro aus:

    • Stelle sicher, dass du das Makro ausführst, wenn das Excel-Dokument vollständig geöffnet und alle Verbindungen aktualisiert sind.

Häufige Fehler und Lösungen

Fehler: Das Makro startet, bevor die Aktualisierung abgeschlossen ist.
Lösung: Stelle sicher, dass die BackgroundQuery-Eigenschaft für alle Abfragen auf False gesetzt ist. Überprüfe zudem, ob der Application.CalculateUntilAsyncQueriesDone-Befehl korrekt implementiert ist.

Fehler: Excel hängt oder reagiert nicht mehr.
Lösung: Überprüfe, ob deine Abfragen oder Verbindungen zu externen Datenquellen fehlerhaft sind. Reduziere die Anzahl der gleichzeitigen Abfragen, um die Leistung zu verbessern.


Alternative Methoden

Wenn du eine andere Herangehensweise ausprobieren möchtest, gibt es alternative Wege:

  • Verwendung von Timer-Funktionen: Dies ist jedoch nicht immer zuverlässig, da die Aktualisierungszeiten variieren können.
  • Ereignisgesteuertes Programmieren: Du könntest auch auf spezifische Ereignisse in Excel reagieren, wie das Beenden einer Aktualisierung oder das Schließen einer Datei.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den oben genannten VBA-Code in verschiedenen Szenarien anwenden kannst:

  1. Aktualisiere Daten aus einer externen Datenbank: Wenn du regelmäßig Daten aus einer SQL-Datenbank abrufst, implementiere das Skript, um sicherzustellen, dass alle Daten vor der Verarbeitung aktualisiert werden.

  2. Kombination von mehreren Makros: Wenn du mehrere Schritte in einem Makro hast, stelle sicher, dass jedes Makro erst nach der vollständigen Aktualisierung der Daten ausgeführt wird.


Tipps für Profis

  • Fehlersuche optimieren: Nutze Debugging-Tools in VBA, um den Fortschritt und mögliche Fehlerquellen in Echtzeit zu überwachen.
  • Makros automatisieren: Automatisiere den Prozess, indem du das aktualisierte Makro an bestimmten Zeitpunkten oder bei bestimmten Ereignissen ausführen lässt.
  • Dokumentation: Halte eine Dokumentation deiner Makros und deren Funktionen bereit, damit du bei Änderungen oder Fehlern schnell darauf zugreifen kannst.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle Daten aktuell sind, bevor ich ein Makro starte?
Verwende den Befehl Application.CalculateUntilAsyncQueriesDone im VBA-Code, nachdem du alle Abfragen aktualisiert hast.

2. Was mache ich, wenn Excel beim Aktualisieren lange braucht?
Überprüfe die Anzahl der Verbindungen und die Datenquelle. Reduziere die Last, indem du nur die benötigten Daten abfragst und die Abfragen effizient gestaltest.

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