Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1212to1216
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Speicherdatum

Speicherdatum
Horst
Hallo Excel-Freunde,
wie kann ich den automatisierten Start einer VBA-Prozedur von der Aktualität einer auszulesenden .txt oder .xls abhängig machen?
Genauer gesagt, soll eine bestimmte VBA-Prozedur starten, sobald in einem vordefinierten Ordner eine vordefinierte Datei (.xls oder .txt) mit einer neuen Version überschrieben wird (von einem externen Programm).
Wie kann ich die Aktualität einer externen .xls oder .txt mittels VBA auslesen?
Besten Dank vorab,
Horst

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Speicherdatum
14.05.2011 09:00:22
Oberschlumpf
Hi Horst
Und wovon machst du es abhängig, dass eine xls- oder txt-Datei überschrieben wurde?
Man kann zwar das Speicher-/Änderungsdatum einer Datei auslesen (viele Bsp dazu findest du bei google).
Ist es denn das, was du möchtest, das Speicher/Änderungsdatum auslesen?
Ciao
Thorsten
AW: Speicherdatum
14.05.2011 09:07:14
Matthias
Hallo Horst,
wenn es das ist, was du willst, dann z.B. so:

Sub test()
Dim fn As String
Dim fso, f
fn = Application.GetOpenFilename
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(fn)
MsgBox "Erstellt: " & f.DateCreated & vbLf & _
"Geändert: " & f.DateLastModified & vbLf & _
"Letzter Zugriff: " & f.DateLastAccessed
End Sub

oder so:

Sub test2()
Dim fn As String
fn = Application.GetOpenFilename
MsgBox FileDateTime(fn)
End Sub
das "fn = Application.GetOpenFilename" dient dur zum Testen, du kannst auch direkt den Dateinamen (incl. Pfad) reinschreiben.
Gruß Matthias
Anzeige
AW: Speicherdatum
14.05.2011 12:51:58
Horst
Hallo Matthias,
Funktioniert ganz gut. Was ich gerne hätte, ist dass bei der Abfrage das Erstellungsdatum gemerkt (zb. in irgendeine log-file geschrieben) wird und dann bei der erneuten Abfrage das ausgelesene Erstellungsdatum mit dem zuvor ausgelesenen aus der log-file verglichen wird. Sollte ein Unterschied feststellbar sein, d.h. eine neue Datei vorliegen, dann würde ich mit "Call ...modul" eine weitere VBA-Prozedur starten, sonst die Abfrage beenden.
Ist sowas mit VBA realisierbar?
Besten Dank vorab!
AW: Speicherdatum
14.05.2011 14:11:00
Oberschlumpf
Hi Horst
Ja, das ist mit VBA möglich.
Aber...
...handelt es sich in dem Verzeichnis um mehrere Dateien?
...soll dein Makro dann bei jeder Datei, die neuer ist, gestartet werden?
...muss der Dateiname der neueren Datei an dein Makro übergeben werden?
Ciao
Thorsten
Anzeige
AW: Speicherdatum
14.05.2011 14:59:24
Horst
Hallo Thorsten,
genau genommen handelt es sich um zwei von einem externen Programm generierte .xls-Dateien, die sich in dem selben Ordner befinden. Wenn eine dieser Dateien von diesem externen Programm überschrieben wird, soll ein entsprechendes Makro gestartet werden. Der Dateiname der externen .xls-Dateien bleibt stets gleich und muss auch nicht übergeben werden.
Wäre super, wenn das jemand auf die Reihe bringen würde.
Besten Dank vorab!
Horst
AW: Speicherdatum
14.05.2011 17:04:25
Tino
Hallo,
müsste so funktionieren.
Sub Test()
Dim strFile$, FileDate As Date
strFile = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
strFile = strFile & "Dateiname.xls" 'Dateiname anpassen
FileDate = FileDateTime(strFile)
'in A1 wird dieses Datum gespeichert, evtl. anpassen
If Range("A1")  FileDate Then
Range("A1") = FileDate
ThisWorkbook.Save
Call Mein_Makro 'Dein Makro anpassen
End If
End Sub

Gruß Tino
Anzeige
AW: Speicherdatum
14.05.2011 20:32:45
Horst
Hallo Tino,
kannst du dein Makro mit einem Beispiel mit konkretem Pfad und Dateinamen versehen, bei mir bleibt es bei FileDate = FileDateTime(strFile) hängen.
Danke!
AW: hier das Beispiel als Zip-File
14.05.2011 22:28:44
Horst
Besten Dank, Tino. Funktioniert großartig.
Wie müsste der Code aussehen, wenn nun statt einer zwei .xls-Dateien im Ordner vorhanden sind und in Abhängigkeit der überschriebenen Datei Makro 1 bzw. Makro 2 gestartet.
Verändert sich beispielsweise die A.xls wird Makro 1 gestartet, verändert sich die B.xls wird Makro 2 gestartet.
Wäre toll, wenn du das noch einbauen könntest.
Horst
Anzeige
geht auch mit zwei Dateien...
14.05.2011 22:49:18
Tino
Hallo,
hier das Beispiel:
Option Explicit

Sub Check_ExFile()
Dim strFile(1) As String, FileDate As Date

'Pfad für Datei A und B 
strFile(0) = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
strFile(1) = strFile(0)

strFile(0) = strFile(0) & "A.txt" 'Datei A 
strFile(1) = strFile(1) & "B.txt" 'Datei B 


'Abfrage Datei A, speichern in A1 
FileDate = FileDateTime(strFile(0))
If Range("A1") <> FileDate Then
    Range("A1") = FileDate
    ThisWorkbook.Save
    Call Mein_Makro_A 'Dein Makro A anpassen 
End If

'Abfrage Datei B, speichern in A2 
FileDate = FileDateTime(strFile(1))
If Range("A2") <> FileDate Then
    Range("A2") = FileDate
    ThisWorkbook.Save
    Call Mein_Makro_B 'Dein Makro B anpassen 
End If
 
End Sub


Sub Mein_Makro_A()
    MsgBox "Mein_Makro_A wurde gestartet"
End Sub

Sub Mein_Makro_B()
    MsgBox "Mein_Makro_B wurde gestartet"
End Sub
Gruß Tino
Anzeige
AW: geht auch mit zwei Dateien...
15.05.2011 00:28:12
Horst
Besten Dank, Tino. Wirklich großartig.
Ich habe abschließend noch einen Beitrag mit dem Titel "Makros verbinden" hier laufen, wo es darum geht zunächst bestimmte Zeilen mit dem Autofilter zu selektieren und danach die .xls abhängig vom Systemdatum als train.txt und test.txt zu speichern. Vielleicht kannst du auch dort den entscheidenden Tipp geben. Deine VBA-Kenntnisse sind wirklich großartig.
Gruß, Horst

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige