Hi Tobias.
Das Problem ist, wie du schon erkannt hast, dass die Abfragen mitunter asynchron ausgeführt werden können.
Da du von einer Datenbank sprichst, wirst du diese Daten wohl per QueryTable nach Excel schaufeln. Dann wäre es ratsam diese QueryTables geziehlt zu aktualisieren.
Option Explicit
Sub NEU()
Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook
Dim xlQT As Excel.QueryTable
Set xlApp = New Excel.Application
xlApp.Visible = True
Set xlWB = xlApp.Workbooks.Open("C:\Pfad\Dateiname.xlsm")
For Each xlQT In xlWB.Worksheets("Sheet1").QueryTables
xlQT.Refresh BackgroundQuery:=False
Next
'==========================================
xlWB.Save
xlWB.Close False ' closes the workbook without saving
xlApp.Quit ' closes the Excel application Set xlWB = Nothing Set xlApp = Nothing
End Sub
Du müsstest den Tabellenblattname im obigen Code noch anpassen.
Lass mich wissen wie es funktioniert (oder nicht funktioniert).
PS: Du scheinst Early-Binding zu verwenden (da du in Word die Excel-Datentypen angibst). Dann kannst du auch mit New diese Anwendung initialisieren. ;)
PPS: Code kann man hier per 'Add a code snipped' hinzufügen (Icon mit zwei rot geschreiften Klammern über dem Eingabebereich). Dieses Icon ist nur sichtbar wenn man JavaScript aktiviert hat / erlaubt. Dies vereinfach das Lesen von Code enorm ... in deinem Fall (bei dem der Code im Beitrag reingeklatscht wurde) ist es sehr unüblich das sich jemand überhaupt die Mühe macht deinen Beitrag zu lesen. Es ist also auch in deinem Interesse diese Funktion hier zu nutzen.
Gruß
|