Ordner auslesen, Erstellungsdatum, letzte Änderung
ich habe einen Ordner mit vielen Textdateien. Nun suche ich
ein Programm welches mir von allen Dateien jeweils
- den Dateinamen (Spalte A)
- das Erstellungsdatum (Spalte B)
- das Datum letzter Änderung (Spalte C)
- die erste Zeile der Datei (Spalte D)
- die letzte Zeile der Datei (Spalte E)
in einliest.
Hallo Thomas,
Alt+F11, Einfügen—Modul, nachstehenden Code reinkopieren.
In der Prozedur Start diese beiden Codezeilen an deine Gegebenheiten anpassen:
Const strPfad As String = „K:“
With Worksheets(„Tabelle1“)
Dann den VB-Editor schließen. In Excel Alt+F8, Makro „Start“ ausführen lassen.
Gruß
Reinhard
Option Explicit
Dim FSO As Object
Sub Start()
' Copyright Ra&Re 2012
Dim Zei As Long, objGef As Object
Const strPfad As String = "K:\"
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
.UsedRange.ClearContents
.Range("A1:E1").Value = Split("Name ErstellD ÄnderungsD ErsteZ LetzteZ")
Zei = 1
Set FSO = CreateObject("Scripting.FilesystemObject")
For Each objGef In FSO.getfolder(strPfad).Files
If LCase(FSO.getextensionname(objGef)) = "txt" Then
Call Eintragen(objGef, Zei)
End If
Next objGef
.Columns("A:E").AutoFit
End With
Set FSO = Nothing
Application.ScreenUpdating = True
End Sub
Function Einlesen(PfadDatei) As String
Dim FF As Long, strDatei As String, lngLaenge As Long
FF = FreeFile
lngLaenge = FileLen(PfadDatei)
strDatei = Space(lngLaenge)
Open PfadDatei For Binary As #FF
Get #FF, , strDatei
Close #FF
Einlesen = strDatei
End Function
Sub Eintragen(PfadDatei As Object, Zei)
Dim T, f1
Set f1 = FSO.GetFile(PfadDatei)
On Error Resume Next
T = Split(Einlesen(PfadDatei), vbCrLf)
With Worksheets("Tabelle1")
Zei = Zei + 1
.Cells(Zei, 1) = Mid(PfadDatei, InStrRev(PfadDatei, "\") + 1)
.Cells(Zei, 2) = f1.DateCreated
.Cells(Zei, 3) = f1.DateLastModified
.Cells(Zei, 4) = Mid(T(0), 4)
.Cells(Zei, 5) = T(UBound(T) - 1)
End With
On Error GoTo 0
End Sub