Dateinamen und Ordnerstrukturen in Excel auslesen
Schritt-für-Schritt-Anleitung
Um alle Dateinamen aus einem Ordner und seinen Unterordnern auszulesen, kannst du das folgende VBA-Makro verwenden. Dieses Makro ermöglicht es dir, einen Hauptordner auszuwählen und alle Dateinamen in Excel aufzulisten.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" auswählst.
- Kopiere und füge den folgenden Code in das Modul ein:
Dim FSO, FO, FU, F
Dim lRow As Long
Dim icol As Integer
Sub Dateien_in_Verzeichnissen_Listen()
Dim varAuswahl As Variant, strDir As String
varAuswahl = Application.GetOpenFilename(Title:="Bitte Ordner wählen und dann abbrechen")
strDir = VBA.CurDir
If MsgBox(strDir & " auslesen?", vbOKCancel) = vbCancel Then Exit Sub
Application.ScreenUpdating = False
Set FSO = CreateObject("Scripting.FileSystemObject")
ActiveSheet.UsedRange.Clear
icol = 0
lRow = 0
lRow = lRow + 1
icol = icol + 1
Cells(lRow, icol) = strDir 'gewählten Ordner eintragen
Call DateienListen(strPath:=strDir)
GetSubFolders strDir
Application.ScreenUpdating = True
MsgBox "Fertig"
End Sub
Function GetSubFolders(Pfad)
Set FO = FSO.GetFolder(Pfad)
Set FU = FO.SubFolders
On Error Resume Next
For Each F In FU
lRow = lRow + 1
icol = icol + 1
Cells(lRow, icol) = F.Name 'Ordnername
Cells(lRow, icol).Interior.ColorIndex = 6 'gelb einfärben
If IsEmpty(F) Then
Cells(lRow, icol) = "!keine Leseberechtigung!"
icol = icol - 1
Else
If DateienListen(strPath:=F.Path) = False Then
Cells(lRow, icol) = "!Problem beim Dateien lesen!"
End If
End If
GetSubFolders F.Path
Next
icol = icol - 1
End Function
- Schließe den VBA-Editor und führe das Makro aus, indem du
ALT + F8
drückst und "Dateien_in_Verzeichnissen_Listen" auswählst.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode besteht darin, die Excel-Funktion =DATEVON()
zu verwenden, um die Dateinamen direkt aus einem bestimmten Ordner zu extrahieren. Diese Methode ist weniger flexibel, da sie keine Unterordner einbezieht, eignet sich aber für einfache Listen.
Praktische Beispiele
Hier ist ein Beispiel, wie du die Dateinamen in Excel auflisten kannst:
- Wähle den Hauptordner
C:\Benutzer\DeinName\Dokumente
.
- Das Makro wird alle Unterordner durchlaufen und die Dateinamen in die Excel-Tabelle eintragen.
Wenn du Hyperlinks zu den Dateien hinzufügen möchtest, kannst du das Makro erweitern, wie im Folgenden:
ActiveSheet.Hyperlinks.Add Anchor:=Cells(lRow, icol), Address:=objFile
Tipps für Profis
- Verwende
Application.ScreenUpdating = False
, um die Leistung des Makros zu steigern.
- Füge Fehlerbehandlungsroutinen hinzu, um mögliche Laufzeitfehler während des Auslesens der Dateien zu vermeiden.
- Experimentiere mit der Formatierung der Zellen, um die Lesbarkeit der Excel-Tabelle zu verbessern.
FAQ: Häufige Fragen
1. Wie kann ich das Makro anpassen, um nur bestimmte Dateitypen auszulesen?
Du kannst die FileType
-Eigenschaft in der DateienListen
-Funktion ändern, um nur bestimmte Dateitypen anzuzeigen, z.B. .txt
oder .xlsx
.
2. Funktioniert das Makro auch mit Excel 365?
Ja, das Makro ist mit Excel 365 kompatibel. Stelle sicher, dass du die notwendigen Berechtigungen zum Auslesen der Ordner hast.
3. Kann ich das Makro auch für Netzlaufwerke verwenden?
Ja, allerdings kann es bei Netzlaufwerken aufgrund von Berechtigungen und Pfadformatierungen zu Problemen kommen. Achte darauf, dass der Pfad korrekt formatiert ist.