Das Archiv des Excel-Forums
Mit Schleife prüfen, ob Datei existiert
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: Mit Schleife prüfen, ob Datei existiert
von: Martin
Geschrieben am: 19.09.2003 12:58:14
Hallo,
ich hoffe jemand kann mir helfen.
Ich habe zwei Codes gefunden und möchte beide so vereinen, dass in einer Schleife geprüft wird, ob eine Datei existiert. Sobald sie existiert (sie wird in einer Prozedur von einer externen Anwendung generiert), soll die Schleife unterbrochen und eine entpsrechende MsgBox-Meldung erscheinen.
Habt Ihr eine Idee?
Hier der Code, der wartet bis eine Datei geschlossen ist und öffnet sie anschließend (also Praktisch die Schleife):
Sub TestFileOpen()
Dim iOpen As Integer
Dim sFile As String
sFile = InputBox("Path and Filename:", , "c:\test\test.xls")
If sFile = "" Then Exit Sub
Do While TestOpen(sFile) = 1
Loop
Workbooks.Open sFile
End Sub
Private Function TestOpen(sPath As String) As Integer
If Dir(sPath) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sPath For Random Access Read Lock Read Write As #1
Close #1
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function
-----------------------------------------------------------------------------
Hier der Code, der prüft, ob die Datei vorhanden ist:
Dim Datei As String
Datei = "C:\sap-daten\auswertung.db"
If Dir(Datei) <> "" Then
MsgBox " Datei existiert"
End If
Danke im Voraus.
Viele Grüße und ein schönes Wochenende
Martin Kaiser
Betrifft: AW: Mit Schleife prüfen, ob Datei existiert
von: Hajo_Zi
Geschrieben am: 19.09.2003 13:00:16
Hallo Martin
warum Schleife???
Sub Datei_vorhanden()
' von Berti Koern
Dim Fso, Dateiname
Set Fso = CreateObject("Scripting.FileSystemObject")
Dateiname = "D:\Eigene Dateien\Hajo\Adresse.xls"
' Egänzung öffnung Hajo
If Fso.FileExists(Dateiname) Then
Workbooks.Open Dateiname
End If
End Sub
Gruß Hajo
Betrifft: AW: Mit Schleife prüfen, ob Datei existiert
von: Martin
Geschrieben am: 19.09.2003 13:09:10
Hallo Hajo,
danke für Deinen Code.
Ich benötige aber eine Schleife. Ich starte in EXCEL ein Modul, das verschiedene (Vor-)Arbeiten leistet. Parallel dazu generiert eine externe Software eine Datei. Irgendwann sind die Vorarbeiten des VBA-Modules abgeschlossen und ich muss auf die Ergebnisdatei der externen Software warten.
Da ich nicht weiß, wie lange die externe Software zur Generierung der Datei benötigt, möchte ich mit Hilfe in einer Schleife laufen prüfen, ob die Datei vorhanden ist, oder nicht.
Sobald sie vorhanden ist, erscheint eine Meldung und es werden die weiteren Prozeduren sowie die Abschlussarbeiten durchgeführt.
Grüße
Martin
Betrifft: AW: Mit Schleife prüfen, ob Datei existiert
von: Martin
Geschrieben am: 19.09.2003 13:17:02
Hallo,
ich glaube ich habe es geschafft...EXCEL prüft alle 5 Sekunden, ob die Datei vorhanden ist, oder nicht. Wenn ja, dann kommt die Meldung.
Sub TestFileOpen()
Dim iOpen As Integer
Dim sFile As String
sFile = "c:\temp\ic_zip\fertig.txt"
Do While TestOpen(sFile) = 1
NeueStunde = Hour(Now())
NeueMinute = Minute(Now())
NeueSekunde = Second(Now()) + 5
WarteZeit = TimeSerial(NeueStunde, NeueMinute, NeueSekunde)
Application.Wait WarteZeit
Loop
MsgBox "vorhanden!"
End Sub
Private Function TestOpen(sPath As String) As Integer
If Dir(sPath) = "" Then
TestOpen = 1
Else
TestOpen = 2
End If
End Function
Oder ist das stark Verbesserungswürdig?
Grüße
Martin
Excel-Beispiele zum Thema " Mit Schleife prüfen, ob Datei existiert"