Dateien im aktuellen Ordner auslesen
Schritt-für-Schritt-Anleitung
Um die Dateinamen aus einem Ordner auszulesen und diese in Excel aufzulisten, kannst du folgendes VBA-Makro verwenden. Das folgende Beispiel zeigt dir, wie du die Dateien im aktuellen Ordner, in dem sich die Excel-Datei befindet, auflisten kannst.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu starten.
- Klicke auf
Einfügen
> Modul
, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Sub ListFiles()
Dim fso As FileSystemObject
Dim fol As Folder
Dim rng As Range
Dim ws As Worksheet
Dim zeile As Long
Set fso = New FileSystemObject
Set fol = fso.GetFolder(ThisWorkbook.Path) ' Aktuellen Ordner ermitteln
Set ws = Sheets("PDF")
zeile = 2
For Each fil In fol.Files
If fil.Name Like "*.pdf" Then
ws.Cells(zeile, 1) = fil.Name
ws.Cells(zeile, 2) = fil.DateLastModified
zeile = zeile + 1
End If
Next fil
Set rng = ws.Range("A2").CurrentRegion
rng.Sort Key1:=ws.Range("A2"), Order1:=xlDescending
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Stelle sicher, dass ein Tabellenblatt mit dem Namen "PDF" existiert.
- Führe das Makro aus, um die Dateinamen aus dem Ordner auszulesen.
Häufige Fehler und Lösungen
-
Fehler: "Objekt benötigt"
Ursache: Möglicherweise hast du die Microsoft Scripting Runtime
nicht aktiviert.
Lösung: Gehe im VBA-Editor zu Extras
> Verweise
und aktiviere Microsoft Scripting Runtime
.
-
Fehler: "Blatt nicht gefunden"
Ursache: Das angegebenen Blatt mit dem Namen "PDF" existiert nicht.
Lösung: Erstelle ein neues Blatt und benenne es "PDF".
Alternative Methoden
Eine andere Möglichkeit, Dateinamen aus einem Ordner in Excel auszulesen, ist die Verwendung von Power Query. Hier kannst du den Ordner als Datenquelle auswählen und die Dateien direkt importieren.
- Gehe zu
Daten
> Abrufen und transformieren
> Aus Datei
> Aus Ordner
.
- Wähle den Ordner aus, in dem sich die Dateien befinden.
- Klicke auf
Daten transformieren
, um die Abfrage zu bearbeiten und die gewünschten Spalten auszuwählen.
Praktische Beispiele
Hier ein Beispiel für das oben genannte VBA-Makro, das alle PDF-Dateien im aktuellen Verzeichnis auflistet. Du kannst das Kriterium in der If
-Bedingung anpassen, um auch andere Dateitypen auszulesen, z.B. .xlsx
, .docx
, etc.
If fil.Name Like "*.xlsx" Then
ws.Cells(zeile, 1) = fil.Name
End If
Tipps für Profis
- Nutze die
FileSystemObject
-Bibliothek, um auf umfangreiche Dateiinformationen zuzugreifen.
- Experimentiere mit verschiedenen Filterkriterien, um spezifische Dateitypen auszulesen.
- Du kannst auch den Dateipfad mit
fil.Path
ausgeben, um eine vollständige Übersicht der Dateien zu erhalten.
FAQ: Häufige Fragen
1. Wie kann ich das Makro anpassen, um nur bestimmte Dateitypen auszugeben?
Ändere einfach die If
-Bedingung im Code, um die gewünschten Dateiendungen zu filtern.
2. Ist es möglich, das Makro für andere Ordner zu verwenden?
Ja, du kannst den Pfad in Set fol = fso.GetFolder("Pfad\zum\Ordner")
anpassen, um Dateien aus einem spezifischen Ordner auszulesen.
3. Benötige ich spezielle Berechtigungen, um auf Dateien zuzugreifen?
Wenn du auf Netzwerkordner zugreifst, benötigst du möglicherweise entsprechende Berechtigungen, um die Dateien auszulesen.