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
schauan
20.05.2026 22:45:44
AW: Du könntest es auch...
Hallöchen,

mal ohne umbenennen eine Liste der 3 neuesten Files mit Größe und Datum.
Problem: Wenn ich das auf csv einschränken will, kommt bei mir der McAfee :-(

Sub Letzte_3()


Dim arr3() As String

arr3 = Split(CreateObject("WScript.Shell").Exec( _
"powershell -command ""Get-ChildItem 'C:\Temp' -File | " & _
"Sort-Object LastWriteTime -Descending | " & _
"Select-Object -First 3 Name,Length,LastWriteTime | " & _
"ForEach-Object { $_.Name + '|' + $_.Length + '|' + $_.LastWriteTime.ToString() }""" _
).StdOut.ReadAll, vbLf)

With Range("A1").Resize(UBound(arr3) + 1)
.Value = Application.Transpose(arr3)
.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True
End With

End Sub


Hinweis:
Man hätte ggf. ein generelles Problem bei Postscript oder anderen Scriptsprachen, wenn die Nutzung in Firmen eingeschränkt ist.
Als Antwort auf diesen Beitrag
Case
20.05.2026 21:09:20
Du könntest es auch...
Moin Christian, :-)

... mit PowerShell probieren: ;-)
Option Explicit

Public Sub Main()
Dim strPS As String
Dim strDL As String
strDL = Environ$("USERPROFILE") & "\Downloads"
strPS = "$strDL='" & strDL & "';"
strPS = strPS & "Remove-Item (Join-Path $strDL ""L*.csv"") -ErrorAction SilentlyContinue;"
strPS = strPS & "$files=Get-ChildItem $strDL -Filter *.csv | Sort LastWriteTime -Descending | Select -First 3 | Sort Length -Desc;"
strPS = strPS & "$i=1;"
strPS = strPS & "foreach($f in $files){Rename-Item $f.FullName ('L'+$i+'.csv') -Force;$i++}"
Shell "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command " & Chr(34) & strPS & Chr(34), vbHide 'vbNormalFocus
End Sub

Das geht auch als "Einzeiler", aber so ist es übersichtlicher. ;-)
Ist getestet. ;-)

Servus
Case
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.