Im Ordner die aktuellste Datei finden und öffnen

Hallo VBA-Freunde,

ich habe folgendes anliegen:

In einem Ordner möchte ich die aktuellste Datei ausfindig machen und öffnen.
Die Dateien haben folgende Bezeichnungen:

Beispie Ornder 1:

AK-Bad Segeberg 2008-07-08
AK-Bad Segeberg 2008-11-08

Beispiel Ordner 2:

AK-Berlinale 2008-07-22
VK-Berlinale 2008-07-25

d.h. Ganz hinten steht immer JJJJ-MM-TT
Ich möchte nun mit VBA aus einer Datei x per Knopfdruck die aktuellste Datei im Ornder 1, im Ordner2 usw. öffnen.

Ich habe im web ein Code gefunden siehe unten, aber leider verstehe ich den Code nicht und kann ihn daher nicht entspechend anpassen. Für kenner wird der Code hier unten wahrscheinlich schnell anpassbar sein.
Gerne könnt Ihr mir auch eure eigenen Lösungen zuschicken
Danke an alle VBA Freunde.

Sub OpenLast()
 Dim fs As FileSearch
 Dim arrDate() As Long
 Dim iCounter As Integer, iAct As Integer
 Dim sDate As String
 Set fs = Application.FileSearch
 With fs
 .Filename = "c:\Ordner1\*.xls"
 .Execute
 For iCounter = 1 To .FoundFiles.Count
 sDate = Right(.FoundFiles(iCounter), 10)
 sDate = Left(sDate, 6)
 sDate = Right(sDate, 2) & Mid(sDate, 3, 2) & \_
 Left(sDate, 2)
 iAct = iAct + 1
 ReDim Preserve arrDate(iAct)
 arrDate(iAct) = CLng(sDate)
 Next iCounter
 End With
 arrDate = SlowSort(arrDate)
 sDate = Format(arrDate(UBound(arrDate)), "000000")
 sDate = Right(sDate, 2) & Mid(sDate, 3, 2) & Left(sDate, 2)
 Workbooks.Open "c:\tmp\APP\_SM-Auflösungsdaten\_" & \_
 sDate & ".xls"
End Sub

[MOD] - Pre-Tag eingefügt.

Hallo Bulut,

Ich finde die neueste Datei mit folgendem Code:

Dim AktuellstesDatum As Date
Dim NeuesteDatei As String
Dim FS As Object
Dim Drv As Object
Dim Datei As Object
Sub neuesteDateiermitteln()
 AktuellstesDatum = DateValue("1.1.1900")
 NeuesteDatei = ""
 Set FS = CreateObject("scripting.filesystemobject")
 Set Drv = FS.GetFolder("C:\Temp")
 For Each Datei In Drv.Files
 If Datei.DateLastModified \> AktuellstesDatum Then
 NeuesteDatei = Datei.Name
 AktuellstesDatum = Datei.DateLastModified
 End If
 Next Datei
 MsgBox NeuesteDatei
End Sub

Den Zielordner kannst Du dann natürlich frei definieren bzw. über eine Variable steuern. DateLastModified (letzte Änderung) könntest Du ersetzen durch DateCreated (Erstelldatum) oder DateLastModified (letzter Zugriff).

Gruß
Arnold

Hallo Bulut,

Ich finde die neueste Datei mit folgendem Code:

Wobei Du hier aufpassen musst: Wie ist die „neueste“ Datei definiert? Anhand des Dateinamens oder anhand des Änderungsdatums? Was soll passieren, wenn ich heute eine Datei von vor drei Jahren ändere? Der Dateiname wäre noch 2005-xxx, aber das Dateidatum sagt, dass dies die aktuellste Datei ist…
Ggf. musst Du in obigem Beispiel anstelle des Auslesens eines Zeitstempels den Dateinamen zerlegen (Endung „.xls“ o. ä. entfernen, letzte x Zeichen als Datum annehmen, in Datum wandeln und mit dem letzten Wert vergleichen). Aber ansonsten bleibt das Prinzip gleich…

Gruß, Manfred

Hi Arnold,

danke für die Antwort. Es klappt.
Ich wollte eigentlich die Datei extrahieren und entsprechend ensprechend der Bezeichnung (Datum) die aktuelle Datei ausfindig machen,

aber wenn ich DateCreated verwende funktioniert es auch so wie ich es brauche.

Thanks