AW: *.TXT Datei prüfen
04.02.2007 15:31:40
Ramses
Hallo
Ohne Userform.
Probier mal.
Du musst nur die Zeit und den Filenamen im ersten Makro anpassen.
In der Funktion musst du nichts machen oder ändern
Option Explicit
Dim OldSavedTime As String
Sub Start_TextFile_Check()
Application.OnTime Now + TimeValue("00:05:00"), "TextFile_Check(""C:\demo.txt"", 5)"
End Sub
Function TextFile_Check(fileName As String, chkMinutes As Integer)
Dim myFSO As Object, myFile As Object
Dim myWSH As Object, msgInfo As Integer
Dim tmpTime As String
Set myFSO = CreateObject("Scripting.FileSystemObject")
Set myFile = myFSO.getfile(fileName)
Debug.Print myFile.dateLastModified
'Prüfung bei erstem Aufruf der Funktion
If OldSavedTime = "" Then
OldSavedTime = myFile.dateLastModified
Set myFSO = Nothing
Set myFile = Nothing
Exit Function
End If
'Zeit extrahieren
tmpTime = Right(myFile.dateLastModified, 8)
Debug.Print TimeValue(OldSavedTime) - TimeValue(tmpTime)
Debug.Print TimeValue(OldSavedTime)
Debug.Print TimeValue(tmpTime)
Debug.Print TimeSerial(0, chkMinutes, 0)
If TimeValue(OldSavedTime) - TimeValue(tmpTime) > TimeSerial(0, chkMinutes, 0) Or TimeValue(OldSavedTime) = TimeValue(tmpTime) Then
MsgBox fileName & " wurde nicht aktualisiert" & vbCrLf & "Makro angehalten, zur itterativen Prüfung neu starten", vbOKOnly, "ACHTUNG"
Set myFSO = Nothing
Set myFile = Nothing
Exit Function
Else
Set myWSH = CreateObject("WScript.Shell")
'Infobox verschwindet nach 5 Sekunden wieder
msgInfo = myWSH.Popup(fileName & " wurde aktualisiert...", 5, "Info", vbOKOnly)
OldSavedTime = myFile.dateLastModified
End If
Set myFSO = Nothing
Set myFile = Nothing
Set myWSH = Nothing
Start_TextFile_Check
End Function
Ich glaube das erklärt sich von selbst
Gruss Rainer