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

Forumthread: Dateien eines Ordners als Array

Dateien eines Ordners als Array
21.04.2009 18:44:13
MBorn
Hallo,
kennt jemand ein einfaches Skript, mit dem man alle Files aus einem Ordner in ein Array packen kann?
Gruß und Dank,
Born
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Dateien eines Ordners als Array
21.04.2009 19:43:41
Tino
Hallo,
hier mal ein simples Beispiel, habe keine Fehlerüberprüfung auf Pfadangabe gemacht.
Option Explicit

Sub TestLeseDaten1(myAr(), strPfad As String, AA As Long)
Dim sFiles As String

Redim Preserve myAr(100000) 'Area groß genug für 100001 Dateien 

sFiles = Dir$(strPfad & "*.*")

Do While sFiles <> ""
    myAr(AA) = sFiles
    AA = AA + 1
    sFiles = Dir$()
Loop

If AA > 0 Then
 Redim Preserve myAr(AA - 1)
End If

End Sub

Sub Beispiel()
Dim myAr(), AA As Long

'bei Pfadangabe auf abschließend \ achten 
Call TestLeseDaten1(myAr, "J:\1 Forum\", AA)

If AA > 0 Then
 Debug.Print Ubound(myAr) 'hier stehen die Dateien drin 
Else
 Debug.Print "keine Dateien" 'keine Dateien gefunden 
End If

End Sub


Gruß Tino

Anzeige
AW: Dateien eines Ordners als Array
21.04.2009 20:23:51
MBorn
Coooool! It works.
Danke Tino.
Born
OT: Eine 2.PLZ-Fml-Variante findest du...
21.04.2009 22:41:55
Luc:-?
...hier, Born... ;-)
Gruß Luc :-?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
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 eines Ordners als Array in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und den Visual Basic-Editor:

    • 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)" und wähle "Einfügen" > "Modul".
  3. Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    
    Sub TestLeseDaten1(myAr() As String, strPfad As String, AA As Long)
       Dim sFiles As String
    
       Redim Preserve myAr(100000) 'Area groß genug für 100001 Dateien
    
       sFiles = Dir$(strPfad & "*.*")
    
       Do While sFiles <> ""
           myAr(AA) = sFiles
           AA = AA + 1
           sFiles = Dir$()
       Loop
    
       If AA > 0 Then
           Redim Preserve myAr(AA - 1)
       End If
    End Sub
    
    Sub Beispiel()
       Dim myAr(), AA As Long
    
       'bei Pfadangabe auf abschließend \ achten 
       Call TestLeseDaten1(myAr, "J:\1 Forum\", AA)
    
       If AA > 0 Then
           Debug.Print Ubound(myAr) 'hier stehen die Dateien drin
       Else
           Debug.Print "keine Dateien" 'keine Dateien gefunden
       End If
    End Sub
  4. Passe den Pfad an:

    • Ändere den Pfad in der Zeile Call TestLeseDaten1(myAr, "J:\1 Forum\", AA) zu deinem gewünschten Ordner.
  5. Führe das Skript aus:

    • Wähle das Beispiel-Makro im VBA-Editor aus und klicke auf "Ausführen" oder drücke F5.

Häufige Fehler und Lösungen

  • Fehlermeldung wegen ungültigem Pfad:

    • Stelle sicher, dass der Pfad korrekt eingegeben ist und auf einen existierenden Ordner verweist. Achte darauf, dass der Pfad mit einem Rückwärtsschrägstrich (\) endet.
  • Keine Dateien gefunden:

    • Überprüfe, ob der Ordner tatsächlich Dateien enthält. Falls der Filter *.* nicht die gewünschten Dateien anzeigt, passe diesen an.

Alternative Methoden

  • Verwendung von Excel-Funktionen:

    • Eine andere Methode ist die Verwendung von Excel-Funktionen wie =WEBSERVICE(), um Daten aus einem Online-Ordner zu importieren, wenn du mit Webinhalten arbeitest.
  • Power Query:

    • Power Query kann ebenfalls genutzt werden, um Daten aus einem Ordner zu importieren und in Excel darzustellen, ohne VBA verwenden zu müssen.

Praktische Beispiele

  • Beispiel 1:

    • Verwende das Skript, um alle Excel-Dateien in einem bestimmten Ordner zu listen.
    • Passe den Pfad an und führe das Skript aus. Die Dateinamen erscheinen im Direktfenster.
  • Beispiel 2:

    • Modifiziere myAr() in myAr() As String in myAr() As Variant, um auch andere Dateitypen zu unterstützen und die Flexibilität zu erhöhen.

Tipps für Profis

  • Error Handling:

    • Implementiere Fehlerbehandlungsroutinen mit On Error GoTo, um Probleme beim Ausführen des Makros zu identifizieren und zu beheben.
  • Performance-Optimierung:

    • Reduziere die Anzahl der Aufrufe von Dir$() durch das Speichern der Dateinamen in einer Array-Variable, um die Ausführungsgeschwindigkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie viele Dateien kann das Skript verarbeiten? Das Skript ist derzeit so konfiguriert, dass es bis zu 100001 Dateien verarbeiten kann. Dies kann angepasst werden, indem du die Größe des Arrays änderst.

2. Funktioniert das Skript in allen Excel-Versionen? Das Skript sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010, 2013, 2016, 2019 und 365.

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