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

Dateien aus Verzeichnis auflisten

Forumthread: Dateien aus Verzeichnis auflisten

Dateien aus Verzeichnis auflisten
13.08.2003 11:06:16
Mario
Hallo,
diese Formel listet die Dateien eines in Zelle A1 eingegebenen Pfad aus, erstellt eine Link und zeigt das Dateidatum in der nächsten Spalte an.

Sub ScanDir()
Dim lRow As Long, lCounter As Long
Dim iCol As Integer
lRow = 1
iCol = 1
With Application.FileSearch
.LookIn = Range("A1").Value
.SearchSubFolders = True
.Execute
For lCounter = 1 To .FoundFiles.Count
lRow = lRow + 1
If lRow = 65537 Then
lRow = 2
iCol = iCol + 1
End If
Cells(lRow, iCol).Value = .FoundFiles(lCounter)
Cells(lRow, iCol).Hyperlinks.Add _
Cells(lRow, iCol), .FoundFiles(lCounter)
Cells(lRow, iCol + 1).Value = FileDateTime(.FoundFiles(lCounter))
Next lCounter
End With
Columns.AutoFit
End Sub

Das Ergebnis sieht so aus.
D:\Datenbank\Sicherheitskopien\
D:\Datenbank\Sicherheitskopien\2170124.xls 11.08.2003 12:18
D:\Datenbank\Sicherheitskopien\2170125.xls 11.08.2003 12:59
D:\Datenbank\Sicherheitskopien\2170129.xls 11.08.2003 21:37
D:\Datenbank\Sicherheitskopien\2170130.xls 11.08.2003 21:48
D:\Datenbank\Sicherheitskopien\2170136.xls 11.08.2003 21:55
D:\Datenbank\Sicherheitskopien\2170137.xls 11.08.2003 22:02
D:\Datenbank\Sicherheitskopien\2170138.xls 11.08.2003 22:04
D:\Datenbank\Sicherheitskopien\2170154.xls 12.08.2003 22:46
D:\Datenbank\Sicherheitskopien\2170155.xls 12.08.2003 22:58
D:\Datenbank\Sicherheitskopien\2170156.xls 12.08.2003 23:00
D:\Datenbank\Sicherheitskopien\2170157.xls 12.08.2003 23:03
D:\Datenbank\Sicherheitskopien\Mappe1.xls 13.08.2003 10:01
D:\Datenbank\Sicherheitskopien\Test_Datei.xls 11.08.2003 22:04
Ist es möglich noch zusätzlich nur den Namen der Datei in einer neuen Spalte anzeigen zu lassen? z.B.
D:\Datenbank\Sicherheitskopien\Mappe1.xls 13.08.2003 10:01 Mappe1
Vielen Dank
Gruss Mario
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien aus Verzeichnis auflisten
13.08.2003 11:28:16
Willie
Meinst du so? Gruß Willie

Sub DateienAuflisten()
Dim lngAkt As Long
Dim rngBereich As Range
Dim rngZelle As Range
'Const Verzeichnis = "C:\test\"
Verzeichnis = InputBox(("Bitte Pfad eingeben!"), "Verzeichnisse in Tabelle1", "C:\test\")
'Verzeichnis = ThisWorkbook.Path
With Application.FileSearch
.NewSearch
.LookIn = Verzeichnis
.SearchSubFolders = False
.FileType = msoFileTypeExcelWorkbooks
.Execute
For lngAkt = 1 To .FoundFiles.Count
Cells(lngAkt, 1) = Mid(.FoundFiles.Item(lngAkt), Len(Verzeichnis) + 1)
Next lngAkt
End With
End Sub


Anzeige
AW: Dateien aus Verzeichnis auflisten
13.08.2003 11:44:08
Mario
Hallo Willie,
nein so habe ich es nicht gemeint.
Die Formel von "mir" ist schon richtig.
Sie gibt als Ergebnis aus
Spalte 1 als Hyperlink - D:\Datenbank\Sicherheitskopien\Test_Datei.xls
Spalte 2 das DateiDatum und die Zeit - 12.08.2003 23:03
nur sollte zusätzlich in
Spalte 3 nur noch der Dateiname erscheien ohne Hyperlink - Test_Datei
Den Pfad,wo die Dateien zu finden sind steht in der Zelle A1
Gruss
Mario

Anzeige
AW: Dateien aus Verzeichnis auflisten
13.08.2003 11:54:29
Willie
dann mußt du es nur so abändern:

Sub DateienAuflisten()
Dim lngAkt As Long
Dim rngBereich As Range
Dim rngZelle As Range
'Const Verzeichnis = "C:\test\"
'Verzeichnis = InputBox(("Bitte Pfad eingeben!"), "Verzeichnisse Tabelle1", "C:\test\")
Verzeichnis = Cells(1,1).Value
With Application.FileSearch
.NewSearch
.LookIn = Verzeichnis
.SearchSubFolders = False
.FileType = msoFileTypeExcelWorkbooks
.Execute
For lngAkt = 1 To .FoundFiles.Count
Cells(lngAkt, 3) = Mid(.FoundFiles.Item(lngAkt), Len(Verzeichnis) + 1)
Next lngAkt
End With
End Sub


Anzeige
AW: Dateien aus Verzeichnis auflisten
13.08.2003 23:34:04
Mario
Hallo Willie,
sorry das ich mich erst jetzt melde. Ich musste kurzfristig etwas früher auf Arbeit.
Erstmal Danke für die Formel. Leider ist noch ein kleiner Fehler drin. Die erste Datei wird immer verschluckt.
als Beispiel:
Im Verzeichnis sind 4 Dateien
Datei1
Datei2
Datei3
Datei4
... es wird aber nur die Datei2, Datei3, und Datei4 ausgegeben. Die Datei1 fehlt !!!
Gruss Mario

Anzeige
AW: Dateien aus Verzeichnis auflisten
14.08.2003 12:51:40
Willie
Das habe ich noch nicht bemerkt bzw. nicht genau ausgetest.
Habe leider z.Z. viel zu tun, und kann mich nicht gleich darum
kümmern.... Vielleicht findest du ja auch selber woran es liegt.
im Debugmodus mit F8 Einzelschritt durch klicken!
Gruß
Willie

AW: Danke, es funktioniert jetzt !!
15.08.2003 22:11:48
Mario
Hallo Willie,
die Formel futzt jetzt. Ich habe beim Anpassen versehendlich eine Zahl geändert.
Vielen Dank für Deine Mühe.
Gruss MArio

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateien aus Verzeichnis auflisten in Excel


Schritt-für-Schritt-Anleitung

Um alle Dateien eines Ordners in Excel aufzulisten, kannst du den folgenden VBA-Code verwenden. Dieser Code listet die Dateien eines in Zelle A1 angegebenen Pfades auf und zeigt das Dateidatum sowie den Dateinamen in separaten Spalten an.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub ScanDir()
    Dim lRow As Long, lCounter As Long
    Dim iCol As Integer
    lRow = 1
    iCol = 1
    With Application.FileSearch
        .LookIn = Range("A1").Value
        .SearchSubFolders = True
        .Execute
        For lCounter = 1 To .FoundFiles.Count
            lRow = lRow + 1
            If lRow = 65537 Then
                lRow = 2
                iCol = iCol + 1
            End If
            Cells(lRow, iCol).Value = .FoundFiles(lCounter)
            Cells(lRow, iCol).Hyperlinks.Add Cells(lRow, iCol), .FoundFiles(lCounter)
            Cells(lRow, iCol + 1).Value = FileDateTime(.FoundFiles(lCounter))
            Cells(lRow, iCol + 2).Value = Mid(.FoundFiles(lCounter), InStrRev(.FoundFiles(lCounter), "\") + 1)
        Next lCounter
    End With
    Columns.AutoFit
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Gib in Zelle A1 den Pfad des Ordners ein, dessen Inhalt du auflisten möchtest.
  3. Drücke ALT + F8, wähle ScanDir aus und klicke auf Ausführen.

Dieser Code listet alle Excel-Dateien im Verzeichnis auf und zeigt das Datum sowie den Dateinamen an.


Häufige Fehler und Lösungen

  • Die erste Datei wird nicht angezeigt: Achte darauf, dass die Schleife korrekt konfiguriert ist. Der Code könnte so angepasst werden, dass er bei lRow = 1 beginnt.

  • Fehler beim Ausführen des Codes: Stelle sicher, dass der Pfad in Zelle A1 korrekt eingegeben wurde. Der Pfad sollte existieren und auf ein Verzeichnis verweisen, das Dateien enthält.


Alternative Methoden

Eine Alternative zum VBA-Code ist die Verwendung von Power Query, um den Ordnerinhalt in Excel aufzulisten. Dies funktioniert jedoch nur in Excel 2016 oder neuer.

  1. Gehe zu Daten > Daten abrufen > Aus Datei > Aus Ordner.
  2. Wähle den gewünschten Ordner aus.
  3. Klicke auf Transformieren, um die Daten zu bearbeiten und in Excel anzuzeigen.

Diese Methode ermöglicht eine einfache Bearbeitung und Filterung der Daten.


Praktische Beispiele

Wenn du beispielsweise den Inhalt des Ordners C:\Daten\ auflisten möchtest, trage diesen Pfad in Zelle A1 ein und führe den VBA-Code aus. Das Ergebnis könnte wie folgt aussehen:

Datei (Hyperlink) Datum/Zeit Dateiname
D:\Daten\Mappe1.xls 12.08.2023 10:01 Mappe1.xls
D:\Daten\Test_Datei.xls 12.08.2023 22:04 Test_Datei.xls

Tipps für Profis

  • Optimierung des Codes: Du kannst den Code weiter optimieren, indem du nur bestimmte Dateitypen auflistest. Ändere die FileType-Eigenschaft in .FileType = msoFileTypeExcelWorkbooks, um nur Excel-Dateien anzuzeigen.

  • Automatisierung: Du könntest den Code so anpassen, dass er automatisch beim Öffnen der Datei ausgeführt wird, um den Inhalt des Ordners stets aktuell zu halten.


FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Dateitypen auflisten?
Du kannst die FileType-Eigenschaft im VBA-Code anpassen, um nur spezifische Dateitypen wie .xls oder .csv anzuzeigen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der VBA-Code sollte in den meisten Versionen von Excel funktionieren, jedoch könnte die Application.FileSearch-Methode in neueren Versionen (nach Excel 2007) nicht mehr verfügbar sein. In diesem Fall solltest du alternative Methoden verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige