Excel VBA: Alle Dateien in einem Ordner nacheinander (sequentiell) aktualisieren?
Hallo liebe Excelprofis,
bislang habe ich es nur hingekriegt, via VBA eine Datei zu öffnen, die dortige Datenabfrage zu aktualisieren und wieder zu schließen:
Sub UpdateExcelFile()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Users\Vorname Nachname\Desktop\Ordner der Testabfragen\Testabfrage 1.xlsx")
ActiveWorkbook.RefreshAll
Application.CalculateUntilAsyncQueriesDone 'VBA-Code warten lassen, bis die Aktualisierung abgeschlossen ist
wb.Save
wb.Close
End Sub
Nun habe ich aber nicht nur eine Datei in dem (definierten) Ordner, sondern mehrere, die genauso wie oben geöffnet, aktualisiert und geschlossen werden sollen. Eine exakte Zahl kann ich nicht nennen, da es fortlaufend immer mehr Dateien werden. Allerdings befinden sich in dem Ordner nur xlsx-Dateien.
Aus Performancegründen möchte ich die Dateien hintereinander und nicht gleichzeitig bearbeitet haben. Der Beispielordner bleibt derselbe (Ordner der Testabfragen). Idealerweise folgt eine Mitteilung zum Ende, wenn die letzte Datei im Ordner wieder geschlossen wurde. Wie würde der Code dafür lauten?
Vielen Dank für eure Unterstützung!
1 Antwort
...
Dim strFile as String
Dim strDir as String
strDir = "C:\Users\Vorname Nachname\Desktop\Ordner der Testabfragen\"
strFile = Dir(strDir & "*.xlsx")
Do While Len(strFile) > 0
Set wb = Workbooks.Open(strDir & strFile)
...
StrFile = Dir
Loop
Dein bestehender Code.
Du bastelst nur eine Schleife herum. Dir filtert dir alle Exceldateien aus dem von dir angegebenen Verzeichnis heraus.
Ja wie gesagt, funktioniert jetzt alles super. Lag am Windows-Benutzernamen. Danke dir.
Danke dir schon mal für die schnelle Antwort, ich verstehe nur leider nicht, was für die ... eingesetzt werden soll :/
Edit: Alles gut, hab vergessen die Anonymisierung "Vorname Nachname" auszutauschen...