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

Dateinamen auslesen

Forumthread: Dateinamen auslesen

Dateinamen auslesen
29.12.2002 14:05:42
Sven Uhlig
Hallo
ich habe wieder mal ein Problem und ich hoffe ihr könnt mir helfen.
Ich möchte Dateien die in einem Unterverzeichniss stehen auslesen und untereinander in eine Exceltabelle einfügen, um diese dann weiterzuverarbeiten. Irgendwie müßte das mit einer Schleife machbar sein ich weiß nur nicht wie. Nachfolgend der Code des Programmes, welches ich gefunden habe und nach meinen Erfordernissen angepaßt habe. Leider gibt das Programm nur die Dateinamen nacheinander in MSG-Boxen aus.

Vielen Dank im voraus.

Sven

Sub Dateien_Auslesen()
Dim Unterordner As String
Unterordner = Worksheets("Tabelle1").Cells(1, 1)
Set fs = Application.FileSearch
With fs
.LookIn = "C:\Projektarbeit\Datenbank Pluritec\" & Unterordner & "\"
.FileType = msoFileTypeAllFiles
If .Execute > 0 Then
MsgBox "There were " & .FoundFiles.Count & " Binder file(s) found."
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "There were no Binder files found."
End If
End With
End Sub


Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Dateinamen auslesen
29.12.2002 14:10:38
Hajo
Hallo Sven

leider hast Du nicht geschrieben ob auch die Unterverzeichnisse ausgelesen werden sollen. Hier ein Beispiel für nur ein Verzeichnis.


Option Explicit

Sub Dateiliste()
' erstellt von Hajo Ziplies 24.12.02
' Dateiliste für ein Verzeichnis ohne Unterverzeichnisse
Dim strVerzeichnis As String
Dim StrDatei As String
Dim I As Integer
Dim StrTyp As String
Dim Dateiname As String
strVerzeichnis = "D:\Eigene Dateien\Hajo\"
StrTyp = "*.xls"
Dateiname = Dir(strVerzeichnis & StrTyp)
I = 3
Do While Dateiname <> ""
Cells(I, 1).Value = strVerzeichnis & Dateiname
I = I + 1
Dateiname = Dir
Loop
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige
Re: Dateinamen auslesen
29.12.2002 17:49:12
Sven Uhlig
Hallo Hajo,

vielen Dank für dein Beispiel, es funktioniert soweit nach einigen Änderungen von mir ganz gut. Habe es auf einen Unterordner erweitert.

Sub Dateiliste()
' angepaßt von Sven Uhlig 29.12.02
' erstellt von Hajo Ziplies 24.12.02
' Dateiliste für ein Verzeichnis ohne Unterverzeichnisse
Dim strVerzeichnis As String
Dim Unterordner As Integer
Dim StrDatei As String
Dim I As Integer
Dim StrTyp As String
Dim Dateiname As String
Unterordner = Worksheets("Tabelle1").Cells(1, 1)
strVerzeichnis = "c:\Test\Datenbank\" & Unterordner & "\"
StrTyp = "*.mdb"
Dateiname = Dir(strVerzeichnis & StrTyp)
I = 3
Do While Dateiname <> ""
ActiveSheet.Cells(I, 1).Value = strVerzeichnis & Dateiname
I = I + 1
Dateiname = Dir
Loop
End Sub

Nun gibt es noch ein Problem:

Die ermittelten Dateien werden in der Tabelle1 angezeigt und sehen folgendermaßen aus:
C:\Test\Datenbank\Unterordner(ist variabel siehe Code)\150102.mdb
Der Dateiname stellt das Datum dar 150102 entspricht 15.01.02.
Im variablem Unterordner können mehere Dateien abgespeichert werden. Nun soll immer die Datei mit dem jüngsten Datum herausgefiltert werden und der Pfad in die Tabelle2(A1) kopiert werden um von dort weiterverarbeitet zu werden.
Wie stelle ich das an ?

MfG
Sven

Anzeige
Re: Dateinamen auslesen
29.12.2002 21:37:39
Hajo
Hallo Sven

hier mal zwei Ansätze zu jüngster Datei

Gruß Hajo

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateinamen aus einem Ordner auslesen in Excel


Schritt-für-Schritt-Anleitung

Um Dateinamen aus einem Ordner auszulesen und in Excel zu kopieren, kannst Du die folgende VBA-Methode verwenden. Diese Methode funktioniert in Excel und ermöglicht es Dir, alle Dateinamen in einer Excel-Tabelle aufzulisten.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub DateinamenAusOrdnerAuslesen()
       Dim strVerzeichnis As String
       Dim Dateiname As String
       Dim I As Integer
    
       ' Verzeichnis anpassen
       strVerzeichnis = "C:\Dein\Ordner\Pfad\"
       Dateiname = Dir(strVerzeichnis & "*.*")
       I = 1
    
       Do While Dateiname <> ""
           Cells(I, 1).Value = Dateiname
           I = I + 1
           Dateiname = Dir
       Loop
    End Sub
  4. Passe den strVerzeichnis-Pfad an, um auf Deinen spezifischen Ordner zu verweisen.

  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Drücke ALT + F8, wähle DateinamenAusOrdnerAuslesen und klicke auf Ausführen.

Jetzt solltest Du alle Dateinamen aus dem angegebenen Ordner in der ersten Spalte Deiner Excel-Tabelle sehen.


Häufige Fehler und Lösungen

  • Fehler: "Der Pfad ist ungültig."

    • Lösung: Überprüfe, ob der angegebene Pfad im strVerzeichnis korrekt ist und der Ordner existiert.
  • Fehler: "Es werden keine Dateinamen angezeigt."

    • Lösung: Stelle sicher, dass im Dir-Befehl das richtige Wildcard-Zeichen *.* verwendet wird, um alle Dateitypen einzuschließen.

Alternative Methoden

Wenn Du Dateinamen aus einem Ordner auslesen möchtest, ohne VBA zu verwenden, kannst Du die Power Query-Funktion in Excel nutzen:

  1. Gehe zu Daten > Abrufen und Transformieren > Aus Datei > Aus Ordner.
  2. Wähle den Ordner aus, dessen Dateinamen Du auslesen möchtest.
  3. Power Query zeigt Dir eine Vorschau der Dateien an. Klicke auf Laden, um die Dateinamen in ein Excel-Blatt zu importieren.

Praktische Beispiele

Hier sind ein paar nützliche Beispiele zur Verwendung von VBA für das Auslesen von Dateinamen:

  1. Dateinamen aus einem Unterordner auslesen:

    Sub DateinamenAusUnterordner()
       Dim strVerzeichnis As String
       Dim Dateiname As String
       Dim I As Integer
    
       strVerzeichnis = "C:\Dein\Hauptordner\Unterordner\"
       Dateiname = Dir(strVerzeichnis & "*.*")
       I = 1
    
       Do While Dateiname <> ""
           Cells(I, 1).Value = Dateiname
           I = I + 1
           Dateiname = Dir
       Loop
    End Sub
  2. Dateinamen in Excel kopieren unter Windows 10:

    • Verwende den oben genannten Code, um alle Dateinamen in eine Excel-Tabelle zu kopieren.

Tipps für Profis

  • Nutze Schleifen und Bedingungen, um spezifische Dateitypen oder die neuesten Dateien aus dem Ordner zu filtern.
  • Speichere den VBA-Code in einer Excel-Vorlage, um ihn für zukünftige Projekte schnell wiederverwenden zu können.
  • Verwende Application.FileSearch für erweiterte Suchfunktionen, wenn Du mit älteren Excel-Versionen arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Dateitypen auslesen?

Du kannst den StrTyp-Parameter im Dir-Befehl anpassen, z. B. StrTyp = "*.xlsx" für Excel-Dateien.

2. Kann ich auch Unterordner einbeziehen?

Ja, Du kannst die VBA-Methode anpassen, um alle Dateien in Unterordnern auszulesen, indem Du eine rekursive Funktion verwendest.

3. Wie kann ich die Dateinamen in eine andere Excel-Tabelle kopieren?

Ändere die Cells(I, 1).Value-Zuweisung auf Worksheets("DeineTabelle").Cells(I, 1).Value, um die Daten in ein anderes Blatt zu kopieren.

4. Gibt es eine Möglichkeit, die neuesten Dateinamen zu filtern?

Ja, Du kannst den FileDateTime-Befehl verwenden, um das Datum der Datei zu überprüfen und nur die neuesten Dateien auszuwählen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige