Als Antwort auf diesen Beitrag
Hi
ja, kann man machen.
schau dir mal den Beispielcode an.
da ich zum bestimmen der neusten und größten Dateien das Sortieren verwende und Sortieren in einem Excelblatt einfacher ist als in Arrays innerhalb von VBA benötigst du ein freies Tabellenblatt in dem die Namen, Dateigröße und erstelldatum eingetragen werden können.
Sub test()
Dim Datei As String
Dim Pfad As String
Pfad = "C:\Test\"
Datei = Dir(Pfad & "*.csv")
With Sheets("Tabelle1")
.Cells.Clear
'--- CSV-Dateien aus verzeichnis lesen
Do Until Datei = ""
With .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
.Offset(0, 0).Value = Datei
.Offset(0, 1).Value = FileDateTime(Pfad & Datei)
.Offset(0, 2).Value = FileLen(Pfad & Datei)
End With
Datei = Dir
Loop
With .Cells(2, 1).CurrentRegion
'neuste Dateien über sortieren bestimmen (neusten nach oben)
.Sort key1:=.Cells(1, 2), order1:=xlDescending, Header:=xlNo
'--- oberen drei nach größe sortieren
.Resize(3).Sort key1:=.Cells(1, 3), order1:=xlDescending, Header:=xlNo
Name Pfad & .Cells(1, 1) As Pfad & "L1.csv"
Name Pfad & .Cells(2, 1) As Pfad & "L2.csv"
Name Pfad & .Cells(3, 1) As Pfad & "L3.csv"
End With
.Cells.Clear
End With
End Sub
FileDateTime gibt dir das letzte Speicherdatum der Datei
Dateien mit den neuen Namen (L1, L2 ) sollten nicht vorhanden sein.
Falls doch, müsstest du die vorher löschen oder umbenennen, oder das Makro um eine entsprechende Prüfung erweitern.
Gruß Daniel