Mit Schleife prüfen, ob Datei existiert

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

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
Bild


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


Bild


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


Bild


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


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Mit Schleife prüfen, ob Datei existiert"