Prüfe ob datei vorhanden, falls nicht prüfe weiter....stopp nach 10 min
Hallo,
ich möchte per VBA in Excel prüfen lassen, ob eine Datei X im Verzeichnis Y vorhanden ist
Diese Prüfung soll als Schleife laufen, da ein externes Programm diese Datei bereit stellt, nur weis ich nicht, wann dieses erfolgt.
Gleichzeitig möchte ich, dass diese Schleife nach 10 Minuten sich beendet, falls bis dahin die Datei immer noch nicht vorhanden ist
Prüfen ob Datei vorhanden ist geht ja noch
nur wo bringe ich die Schleife, vor allem den Stopp nach 10 Minuten ein?
ich möchte per VBA in Excel prüfen lassen, ob eine Datei X im Verzeichnis Y vorhanden ist
Diese Prüfung soll als Schleife laufen, da ein externes Programm diese Datei bereit stellt, nur weis ich nicht, wann dieses erfolgt.
Gleichzeitig möchte ich, dass diese Schleife nach 10 Minuten sich beendet, falls bis dahin die Datei immer noch nicht vorhanden ist
Prüfen ob Datei vorhanden ist geht ja noch
If Dir("C:\test.txt") = "" Then
MsgBox "gibts nicht"
Else
MsgBox "gibts"
End If
nur wo bringe ich die Schleife, vor allem den Stopp nach 10 Minuten ein?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 258573
Url: https://administrator.de/forum/pruefe-ob-datei-vorhanden-falls-nicht-pruefe-weiter-stopp-nach-10-min-258573.html
Ausgedruckt am: 03.04.2025 um 18:04 Uhr
2 Kommentare
Neuester Kommentar

Hallo thomas1972!
In etwa so:
Grüße Dieter
In etwa so:
Sub Test()
If IsFileExists("C:\Test.txt") Then
MsgBox "existiert"
Else
MsgBox "existiert nicht"
End If
End Sub
Private Function IsFileExists(ByRef sFileName) As Boolean
Dim dStopTime As Date
dStopTime = DateAdd("n", 10, Now) 'Stopzeit (maximal 10 Minuten)
Do While dStopTime > Now
DoEvents
If Dir(sFileName) <> "" Then
IsFileExists = True: Exit Do
End If
Call WaitOfTime(10) 'Wartezeit (alle 10 Sekunden prüfen)
Loop
End Function
'Funktion Warten in Sekunden (1s = 1, 100ms = 0.1, 500ms = 0.5, 50ms = 0.05...)
Private Sub WaitOfTime(ByVal dSecond As Double)
Dim dStopTime As Double
dStopTime = Date + ((Timer + dSecond) / 86400)
Do While dStopTime >= (Date + Timer / 86400)
DoEvents
Loop
End Sub
Grüße Dieter