Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge