EXCEL: aktuellste Datei in einem Verzeichnis mit verzeichnispfad anzeigen in einer zelle
Hallo Zusammen
Gibt es eine Möglichkeit die Aktuellste Datei in einem Verzeichnis mit Pfad in einer Zelle auszugeben?
in einer Zelle soll es dann so aussehen: c:\neusteDatei.txt
Ich habe leider bis jetzt nur möglichkeiten die Datei zu öffnen aber nicht diese in einer Zelle auszugeben.
Man müsste auch den Pfad hinterlegen können, welche er suchen soll..in diesem Fall wäre es c:\
Besten Dank schon mal im vorraus
Grüsse
o0Asia0o
Gibt es eine Möglichkeit die Aktuellste Datei in einem Verzeichnis mit Pfad in einer Zelle auszugeben?
in einer Zelle soll es dann so aussehen: c:\neusteDatei.txt
Ich habe leider bis jetzt nur möglichkeiten die Datei zu öffnen aber nicht diese in einer Zelle auszugeben.
Man müsste auch den Pfad hinterlegen können, welche er suchen soll..in diesem Fall wäre es c:\
Besten Dank schon mal im vorraus
Grüsse
o0Asia0o
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 330931
Url: https://administrator.de/contentid/330931
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
11 Kommentare
Neuester Kommentar
Machst du z.B. so:
Grüße Uwe
Sub Test()
ActiveSheet.Range("A1").Value = getNewestFiles("C:\Ordnerpfad").Fields("Name").Value
End Sub
Function getNewestFiles(strFolder)
Set objList = CreateObject("ADOR.Recordset")
Set fso = CreateObject("Scripting.Filesystemobject")
objList.Fields.Append "name", 200, 255
objList.Fields.Append "date", 7
objList.Open
For Each file In fso.GetFolder(strFolder).Files
objList.AddNew
objList("name").Value = file.Path
objList("date").Value = file.DateLastModified
objList.Update
Next
objList.Sort = "date DESC"
Set getNewestFiles = objList
Set fso = Nothing
Set objList = Nothing
End Function
Das Prinzip ist nicht so schwer. Es wird in der Funktion ein Recordset-Objekt erzeugt und darin dann zwei Spalten für Pfad und Datum angelegt. Dann werden alle Dateien eines Verzeichnisses mit Pfad und Datum in das Recordset eingefügt. Zum Schluss wird das Recordset nach Datum absteigend sortiert und in der Funktion zurückgegeben. Erstes Element der Liste ist dann die aktuellste Datei. Diesen Wert weisen wir dann einer Zelle zu, fertig .
Zitat von @o0Asia0o:
Wäre das auch Möglich mit Mehreren Pfaden und mehreren zellen gleichzeitig zu aktualisieren?
z.B.
zelle A1 wäre C:\Test1
zelle A2 wäre c:\Test2
Ja, du kannst die Zellen mit einer Schleife durchlaufen und dann jeweils die aktuellste Datei dann z.B. in Spalte B daneben schreiben.Wäre das auch Möglich mit Mehreren Pfaden und mehreren zellen gleichzeitig zu aktualisieren?
z.B.
zelle A1 wäre C:\Test1
zelle A2 wäre c:\Test2
Sub ShowLatestFileForPaths()
On Error Resume Next
With ActiveSheet
for each cell in .Range("A1:A" & .Cells(Rows.Count,"A").End(xlUp).Row)
set files = getNewestFiles(cell.Value)
if files.RecordCount > 0 then
Cell.Offset(0,1).Value = files.Fields("Name").Value
end if
Next
End with
End Sub
Function getNewestFiles(strFolder)
Set objList = CreateObject("ADOR.Recordset")
Set fso = CreateObject("Scripting.Filesystemobject")
objList.Fields.Append "name", 200, 255
objList.Fields.Append "date", 7
objList.Open
if fso.FolderExists(strFolder) then
For Each file In fso.GetFolder(strFolder).Files
objList.AddNew
objList("name").Value = file.Path
objList("date").Value = file.DateLastModified
objList.Update
Next
End if
objList.Sort = "date DESC"
Set getNewestFiles = objList
Set fso = Nothing
Set objList = Nothing
End Function
Zitat von @o0Asia0o:
Kann es sein, dass hier ein Fehler ist und es nicht weisst, wo es die Daten suchen soll?
Wird einfach ein Verständnisproblem sein. Obiges Script durchläuft alle Zellen im Bereich A1:AX, wobei es automatisch die letzte belegte Zelle in Spalte A ermittelt und durchläuft dann diese Zellen in denen die Ordnernamen stehen. Dann wird zu jedem Ordnernamen die aktuelleste Datei ermittelt und jeweils daneben in Spalte B geschrieben.Kann es sein, dass hier ein Fehler ist und es nicht weisst, wo es die Daten suchen soll?
Frage mich wie viele Jahre es mich kostet, bis ich so gut bin
Lesen und üben, üben, üben.Zitat von @o0Asia0o:
Also damit ich es verstehe muss ich in der Zelle A1:AX die Ordnerpfade eingeben und es sollte dann automatisch diese in der Spalte B den Ordnerpfad mit der aktuellsten Datei ausgeben?
KorrektAlso damit ich es verstehe muss ich in der Zelle A1:AX die Ordnerpfade eingeben und es sollte dann automatisch diese in der Spalte B den Ordnerpfad mit der aktuellsten Datei ausgeben?
Falls Ja wäre es möglich das ich hier was falsch gemacht habe?
Ja, du hast da einen überflüssigen Punkt zwischen Files.Record.Count es muss Files.RecordCount lauten.Und es fehlt ein cell vor dem .Offset.
Am besten du kopierst es nochmal richtig