Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: vollständigen Pfadnamen aller Dateien imOrder

Forumthread: VBA: vollständigen Pfadnamen aller Dateien imOrder

VBA: vollständigen Pfadnamen aller Dateien imOrder
22.04.2005 08:51:43
Christian
Hallo,
in einem Ordner befinden sich viele Textdateien auf denen ich ein Makro (=umwandeln) anwenden möchte. Dafür braucht der Makro als Übergabeparameter den vollständigen Pfad- und Dateinamen. Zum Beispiel: "C:\temp\txt\99.txt".
Mit dem FileSystemObject kann ich jede Datei des Verzeichnisses durchlaufen. Nur wie bekomme ich den vollständigen Namen in den Makroaufruf?
Public FSO As FileSystemObject

Sub starten()
Dim Datei As File
Dim Verzeichnis As Folder
Set FSO = New FileSystemObject
Set Verzeichnis = FSO.GetFolder("C:\temp\txt")
For Each Datei In Verzeichnis.Files
Call umwandeln(NAME)
Call Speichern
Tabelle1.Activate
Next
End Sub

MfG
Christian
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: vollständigen Pfadnamen aller Dateien imOrder
22.04.2005 09:18:38
UweD
Hallo Christian
so dürfte es gehen:

Sub alle_Dateien_Verzeichnis() '
strPath = "C:\Temp\txt\" 'Pfad des Verzeichnisses ggf. anpassen
strExt = "*.txt"       'Dateiextension ggf. anpassen
Dim strFile As String
If strPath = "" Then
Exit Sub
Else
strFile = Dir(strPath & strExt)
Do While Len(strFile) > 0
'Hier dein Teil
Call umwandeln(Name)
Call Speichern
strFile = Dir() ' nächste Datei
Loop
End If
End Sub

Gruß UweD
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Vollständige Pfadnamen aller Dateien im Ordner mit VBA


Schritt-für-Schritt-Anleitung

Um den vollständigen Pfadnamen aller Dateien in einem bestimmten Ordner mithilfe von VBA zu erhalten, kannst du die folgenden Schritte befolgen:

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

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx) > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub alle_Dateien_Verzeichnis()
       Dim strPath As String
       Dim strExt As String
       Dim strFile As String
    
       strPath = "C:\Temp\txt\" ' Pfad des Verzeichnisses ggf. anpassen
       strExt = "*.txt"         ' Dateiextension ggf. anpassen
    
       If strPath = "" Then
           Exit Sub
       Else
           strFile = Dir(strPath & strExt)
           Do While Len(strFile) > 0
               ' Hier dein Teil
               Call umwandeln(strPath & strFile) ' Vollständigen Pfad übergeben
               Call Speichern
               strFile = Dir() ' nächste Datei
           Loop
       End If
    End Sub
  4. Passe den Pfad (strPath) und die Dateierweiterung (strExt) gemäß deinen Anforderungen an.

  5. Führe das Makro aus, um die gewünschten Dateien zu verarbeiten.


Häufige Fehler und Lösungen

  • Fehler: „Datei nicht gefunden“
    Lösung: Stelle sicher, dass der angegebene Pfad korrekt ist und die Dateien existieren.

  • Fehler: „Typ nicht definiert“
    Lösung: Überprüfe, ob die FileSystemObject-Bibliothek aktiviert ist. Gehe zu Extras > Verweise und aktiviere Microsoft Scripting Runtime.

  • Fehler: Unbekannte Methode „umwandeln“
    Lösung: Stelle sicher, dass die Funktion umwandeln im gleichen Modul oder in einem anderen verfügbaren Modul definiert ist.


Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch folgende Methoden in Betracht ziehen:

  • Power Query: In Excel kannst du mit Power Query Daten aus einem Ordner importieren und die vollständigen Dateinamen extrahieren.
  • Batch-Skripte: Mit Windows-Batch-Skripten kannst du ebenfalls die vollständigen Pfade von Dateien in einem Ordner auflisten.

Praktische Beispiele

Wenn du mehrere Dateitypen verarbeiten möchtest, kannst du den Code leicht anpassen. Hier ein Beispiel, um sowohl .txt als auch .csv Dateien zu verarbeiten:

Sub alle_Dateien_Verzeichnis()
    Dim strPath As String
    Dim strExt As String
    Dim strFile As String

    strPath = "C:\Temp\txt\"
    strExt = "*.txt"

    ' Verarbeite .txt-Dateien
    strFile = Dir(strPath & strExt)
    Do While Len(strFile) > 0
        Call umwandeln(strPath & strFile)
        Call Speichern
        strFile = Dir()
    Loop

    ' Verarbeite .csv-Dateien
    strExt = "*.csv"
    strFile = Dir(strPath & strExt)
    Do While Len(strFile) > 0
        Call umwandeln(strPath & strFile)
        Call Speichern
        strFile = Dir()
    Loop
End Sub

Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere On Error Resume Next, um Fehler zu ignorieren, die während der Verarbeitung auftreten können.
  • Optimiere die Geschwindigkeit: Deaktiviere die Bildschirmaktualisierung mit Application.ScreenUpdating = False, um den Prozess zu beschleunigen.
  • Dokumentation: Kommentiere deinen Code gründlich, damit andere (oder du selbst in der Zukunft) leichter verstehen, was jeder Teil des Codes bewirkt.

FAQ: Häufige Fragen

1. Frage: Wie kann ich den Code anpassen, um nur bestimmte Dateien zu verarbeiten?
Antwort: Du kannst die strExt-Variable ändern, um nur die gewünschten Dateitypen anzugeben, z.B. strExt = "*.xls" für Excel-Dateien.

2. Frage: Ist dieser Code mit jeder Excel-Version kompatibel?
Antwort: Ja, der Code sollte in den meisten aktuellen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010 und später.

3. Frage: Was mache ich, wenn ich mehr als 1000 Dateien im Ordner habe?
Antwort: Der Code kann auch mit einer größeren Anzahl von Dateien umgehen. Stelle sicher, dass dein PC über ausreichende Ressourcen verfügt, um alle Dateien zu verarbeiten.

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