HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Christian
20.05.2026 20:44:39
AW: VBA - Dateien umbenennen je nach Dateiegenschaft
Hallo Daniel,

hab's noch ein bissl an meine Gegebenheiten angepasst, z.b. Download Ordner, dann hat es in der Testdatei, in der nur dieses Makro lief, funktioniert.
Einen geeingeten Platz zu finden, wo ich das in der Originaldatei reinschreiben kann, wird jetzt ne etwas umfangreichere Sache, ich hab zwar extra ein Blatt in der Mappe für temporär angelegte Sachen, aber werde jetzt mal prüfen müssen, wo genau zu dem zeitpunkt wo ich das ins Makro einfügen will in diesem Blatt schon Spalten/Zeilen in Beschlag sind und wo nicht, dass da nix überschrieben wird.
Aber zurück zum Thema, ich denke das bekomme ich hin, ich bedanke mich bei dir und wünsche dir noch einen schönen Abend
Christian
Als Antwort auf diesen Beitrag
daniel
20.05.2026 20:12:10
AW: VBA - Dateien umbenennen je nach Dateiegenschaft
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
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.