ich möchte alle Ordner und Unterordner eines Verzeichnis inkl. der darin liegenden Dateien in Excel auflisten. Daneben soll jeweils die Größe des Ordners (bzw. des Files) stehen.
Klingt so einfach, ist es aber nicht. Das Auflisten der Ordner hab ich inzwischen geschafft aber dann bin ich an meine Grenzen gestoßen. Hier im Forum habe ich von Rolf einen Code gefunden. Der macht eigentlich genau das, was er soll - allerdings nur bei mir zuhause (Excel 2003). Hier im Büro (Excel 2007) bleibt er immer an der Stelle "Set fso = Application.FileSearch" stehen.
- Woran liegt das? Bzw. was muss dahin damit Excel weiterläuft?
- Was muss ich statt dem hier "fs.GetFile(.FoundFiles(i)).DateLastModified" eintragen, wenn ich statt dem Änderungsdatum die Größe der Datei wissen möchte?
Zwei Fragen die mich nun schon seit Stunden quälen. Über eine Lösung wäre ich echt richtig Glücklich!!!
Hoffnungsvolle Grüße,
Peter
Sub dateien_ausgeben()
'Rolf Beißner
Dim fs As Object
Dim fso As Object
Dim i As Integer, n As Integer
Dim A As Variant
A = Array("Pfad", "Datei", "LastModify")
ActiveWorkbook.Sheets.Add
With Range("A1:C1")
.Value = A
.Interior.ColorIndex = 15
.Font.Bold = True
End With
Application.ScreenUpdating = False
Set fs = CreateObject("Scripting.FileSystemObject")
Set fso = Application.FileSearch
With fso
.NewSearch
.LookIn = "Y:\my_Data\PUT_Reporting\"
.Filename = "*.*"
.SearchSubFolders = True
If .Execute() > 0 Then
n = .FoundFiles.Count
MsgBox n & " Datei(en) gefunden"
For i = 1 To n
Cells(i + 1, 1) = fs.GetParentFolderName(.FoundFiles(i))
Cells(i + 1, 2) = fs.GetFileName(.FoundFiles(i))
Cells(i + 1, 3) = fs.GetFile(.FoundFiles(i)).DateLastModified
Next i
End If
End With
Columns.AutoFit
Application.ScreenUpdating = True
End Sub