Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA neueste Datei in Ordner finden

Forumthread: VBA neueste Datei in Ordner finden

VBA neueste Datei in Ordner finden
Patrick
Hallo,
ich habe folgenden Code genutzt:

Sub Find_Neu_Filedate()
' von Rainer (Ramses)
'Liefert jüngste Datei in einem Verzeichnis
Dim I As Long
Dim strDateiname As String, Path As String, DEW As String
Dim StoreDate As Date, StoreName As String
'Variablen setzen
'Pfad
Path = "C:\Benutzerdaten\patrick.kupitz\Desktop\test"
'Dateierweiterung
DEW = "*.xls"
I = 0
strDateiname = Dir(Path & "\" & DEW)
StoreDate = FileDateTime(strDateiname)
Do While (strDateiname  "")
I = I + 1
If Format(FileDateTime(strDateiname), "dd.mm.yyyy") > StoreDate Then
StoreDate = Format(FileDateTime(strDateiname), "dd.mm.yyyy")
StoreName = Dir()
Debug.Print StoreDate
Debug.Print StoreName
End If
strDateiname = Dir()
Loop
If I = 0 Then
MsgBox "Keine Dateien dieses Typs " & DEW & " gefunden"
Exit Sub
End If
MsgBox ("Die jüngste Datei ist: " & StoreName & ", erstellt am " & StoreDate)
Exit Sub
Error_SuchVZ:
MsgBox "Das Verzeichnis: " & Path & " konnte nicht gefunden werden! "
End Sub
Leider bekomme ich keinen Namen der Datei ausgegeben, d.h. storename funktioniert irgendwie nicht. Bin seit 4 Stunden am rumprobieren oh ne Erfolg. Ich hoffe, hier kann mir jemand helfen.
Gruß
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA neueste Datei in Ordner finden
23.02.2011 17:23:04
Patrick
Zudem bekomme ich einen Laufzeitfehler 5, wenn ich das Datumformat auf DD.MM.YYYY hh:mm setzt in Zeile strDateiname = Dir()
Woran kann das liegen?
AW: VBA neueste Datei in Ordner finden
23.02.2011 18:29:57
Nepumuk
Hallo,
die Format-Funktion gibt einen String zurück. Deine Variable StoreDate ist ein Datum. Du vergleichst also Weintrauben mit Kokosnüssen (sind beide irgendwie rund).
FileDateTime gibt dir doch ein richtiges Datum (Datentyp Date) zurück, also wozu noch mit Format umwandeln?
Gruß
Nepumuk
Anzeige
AW: VBA neueste Datei in Ordner finden
23.02.2011 18:53:15
Patrick
Hi,
okay, habe die Formatfunltion rausgenommen. Dann bekomme ich leider einen Laufzeitfehler 5 in der Zeile über Loop: strDateiname = Dir()
Ideen?
Vielen Dank.
AW: VBA neueste Datei in Ordner finden
23.02.2011 19:22:37
Nepumuk
Hallo,
du rufst die Dir-Funktion ja auch 2mal innerhalb Do-Loop auf.
Gruß
Nepumuk
AW: VBA neueste Datei in Ordner finden
23.02.2011 19:31:28
Patrick
Okay, wie würdest du es denn machen bzw. wie funktioniert es? Ich hab halt kein Plan ... ^^
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA: Die neueste Datei in einem Ordner finden


Schritt-für-Schritt-Anleitung

Um die neueste Datei in einem Ordner mit Excel VBA zu finden, kannst du den folgenden Code verwenden. Dieser Code sucht nach der neuesten Excel-Datei (.xls) in einem angegebenen Verzeichnis.

Sub Find_Neu_Filedate()
    Dim I As Long
    Dim strDateiname As String, Path As String, DEW As String
    Dim StoreDate As Date, StoreName As String
    ' Pfad setzen
    Path = "C:\Benutzerdaten\patrick.kupitz\Desktop\test"
    ' Dateierweiterung
    DEW = "*.xls"
    I = 0
    strDateiname = Dir(Path & "\" & DEW)

    If strDateiname = "" Then
        MsgBox "Keine Dateien dieses Typs " & DEW & " gefunden"
        Exit Sub
    End If

    StoreDate = FileDateTime(strDateiname)
    StoreName = strDateiname

    Do While strDateiname <> ""
        If FileDateTime(strDateiname) > StoreDate Then
            StoreDate = FileDateTime(strDateiname)
            StoreName = strDateiname
        End If
        strDateiname = Dir() ' Hier die Dir-Funktion nur einmal aufrufen
    Loop

    MsgBox "Die jüngste Datei ist: " & StoreName & ", erstellt am " & StoreDate
End Sub

Stelle sicher, dass der Pfad zu deinem Ordner korrekt ist. Dieser Code sucht nach der neuesten Datei und gibt deren Namen sowie das Erstellungsdatum aus.


Häufige Fehler und Lösungen

  1. Laufzeitfehler 5: Dieser Fehler tritt häufig auf, wenn du die Dir()-Funktion mehrmals innerhalb des Do While-Loops aufrufst. Verwende die Dir()-Funktion nur einmal pro Schleifeniteration.

  2. Keine Datei gefunden: Wenn du die Meldung "Keine Dateien dieses Typs gefunden" erhältst, überprüfe den Dateipfad und die Dateierweiterung. Stelle sicher, dass im angegebenen Ordner tatsächlich Excel-Dateien vorhanden sind.

  3. Formatierungsprobleme: Achte darauf, die Formatierung von Datumswerten zu vermeiden, wenn du mit FileDateTime arbeitest. Verwende den Datentyp Date für die StoreDate-Variable, um Vergleichsfehler zu vermeiden.


Alternative Methoden

Eine alternative Methode, um die neueste Datei in einem Ordner zu finden, wäre die Verwendung des Windows-Shell-Objekts. Dies kann nützlich sein, wenn du mit verschiedenen Dateitypen arbeiten möchtest.

Sub Find_Neueste_Datei_Shell()
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim LatestFile As String
    Dim LatestDate As Date

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder("C:\Benutzerdaten\patrick.kupitz\Desktop\test")

    For Each objFile In objFolder.Files
        If objFile.DateCreated > LatestDate Then
            LatestDate = objFile.DateCreated
            LatestFile = objFile.Name
        End If
    Next objFile

    If LatestFile <> "" Then
        MsgBox "Die jüngste Datei ist: " & LatestFile & ", erstellt am " & LatestDate
    Else
        MsgBox "Keine Dateien gefunden."
    End If
End Sub

Dieser Code verwendet das FileSystemObject und bietet eine einfache Möglichkeit, die neueste Datei in einem Ordner zu finden.


Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für das Suchen der neuesten Datei in einem Ordner:

  • Backup-Skripte: Automatisiere das Sichern von Dateien, indem du immer die neueste Datei in einem Backup-Ordner suchst.
  • Berichtgenerierung: Verwende den gefundenen Dateinamen, um automatisch einen Bericht auf Basis der neuesten Daten zu erstellen.
  • E-Mail-Benachrichtigungen: Integriere diesen Code in ein E-Mail-Versandskript, um Benachrichtigungen über die neueste Datei zu senden.

Tipps für Profis

  • Nutze die FileSystemObject, um erweiterte Dateiinformationen zu erhalten, wie z.B. die Größe oder den letzten Zugriff.
  • Setze Fehlerbehandlungsroutinen ein, um dein Skript robuster zu machen. Beispiel:
On Error Resume Next
' Dein Code hier
If Err.Number <> 0 Then
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0
  • Teste deine Skripte in einer sicheren Umgebung, bevor du sie produktiv einsetzt, um unerwartete Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die neueste Datei eines bestimmten Typs finden?
Du kannst die Dateierweiterung im Code anpassen. Ändere DEW = "*.xls" zu der gewünschten Erweiterung, z.B. DEW = "*.xlsx".

2. Funktioniert dieser Code in Excel 365?
Ja, der Code ist mit Excel 365 und anderen Versionen von Excel kompatibel, die VBA unterstützen.

3. Kann ich den Code anpassen, um auch Unterordner zu durchsuchen?
Ja, du kannst die GetFolder-Methode rekursiv aufrufen, um auch Unterordner zu durchsuchen. Das erfordert jedoch etwas mehr Programmierung.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige