Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateien im aktuellen Ordner auslesen

Dateien im aktuellen Ordner auslesen
Mister
Hallo und guten morgen,
vor langer Zeit habe ich folgendes Makro aus dem Forum das die Dateien im angegebenen Ordner ausliest und in der Tabelle "PDF" auflistet. Wie muss ich das Makro ändern damit die Dateien aufgelistet werden die sich im gleichen Ordner befinden wie die Datei die das Makro beinhaltet?
Sub ListFiles()
'On Error Resume Next
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("\\daten2\intra\Info-Dienstplan\Celle\")
Set ws = Sheets("PDF")
zeile = 2
For Each fil In fol.Files
If fil.Name Like "*.pdf" Then
ws.Cells(zeile, 1) = fil.Name
' Falls der Pfad dabei sein soll:
' ws.Cells(zeile, 1) = fil.Path
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

Danke und Gruß
Martin
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Dateien im aktuellen Ordner auslesen
24.09.2009 10:20:27
Rudi
Hallo,
Set fol = fso.GetFolder(ThisWorkbook.Path)
Gruß
Rudi
AW: Dateien im aktuellen Ordner auslesen
24.09.2009 10:28:47
Mister
Danke Rudi!
funktioniert perfekt :-)
einen schönen Tag noch
Gruß
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

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.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. 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
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Stelle sicher, dass ein Tabellenblatt mit dem Namen "PDF" existiert.
  3. 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.

  1. Gehe zu Daten > Abrufen und transformieren > Aus Datei > Aus Ordner.
  2. Wähle den Ordner aus, in dem sich die Dateien befinden.
  3. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige