Anzeige
Archiv - Navigation
1708to1712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenimport aus verschiedenen Ordnern

Datenimport aus verschiedenen Ordnern
22.08.2019 13:48:42
Florian
Guten Tag,
ich benutze derzeit ein VBA zum importieren mehrerer Dateien aus einem Ordner, welches auch sehr gut funktioniert.
Nun benötige ich aber ein VBA, mit dem ich Dateien aus unterschiedlichen Ordnern importieren kann.
In jedem Ordner sind drei Dateien, die immer den selben Namen haben.
Die Ordnerstruktur sieht so aus:
Hauptordner\2019-09\Unterordner\*.*Datei.txt (immer der gleiche Name)
Hauptordner bleibt immer gleich, 2019-09 ändert sich, je nachdem welchen Monat ich auswerten möchte. Die Unterordner haben unterschiedlichen Namen.
Ich beziehe momentan den Dateipfad aus einer Zelle, damit ich den schnell ändern kann.
Gibt es eine Möglichkeit die verschiedenen Dateipfade untereinander in die Zellen zu schreiben, sodass das VBA über eine schleife jede Zelle liest und die entsprechenden Dateien aus den verschiedenen Ordner importiert.
Über Powerquery ist das nichts, da ich ständig den Dateipfad ändern muss.
Das Makro zu duplizieren und den Dateipfad nur anzupassen ist auch nichts, da immer wieder neue Ordner hinzukommen (also das eine mal muss ich auf z.b. 28 Unterordner mit je 3 Dateien und das andere mal auf z.b. 32 Unterordner zugreifen.
Das derzeitige Makro zum einlesen von mehreren Dateien eines Ordners welches ich nutze sieht so aus:
Sub Daten_einlesen()
Application.DisplayAlerts = False
Application.DisplayAlerts = True
Dim strFile As String
strPath = Sheets("01. Dateien").Range("C2")
strExt = "*BWA.txt"
If strPath = "" Then
Exit Sub
Else
strFile = Dir(strPath & strExt)
Do While Len(strFile) > 0
Workbooks.Open Filename:=strPath & strFile
ThisWorkbook.Worksheets.Add.Name = strFile
ThisWorkbook.Worksheets(strFile).Range("A1:AA10000").Value = _
Workbooks(strFile).Worksheets(1).Range("A1:AA10000").Value
Workbooks(strFile).Close False  ' Arbeitsmappe wird geschlossen
strFile = Dir()                 ' nächste Datei wird ermittelt
Loop
End If
AnzahlRegister = Sheets.Count
For i = 1 To AnzahlRegister - 1
x = i
For Zähler = i + 1 To AnzahlRegister
If UCase$(Sheets(Zähler).Name)  i Then Sheets(x).Move Sheets(i)
Next i
Sheets("01. Dateien").Select
Range("J3").Select
End Sub

Ich hoffe es ist verständlich geschrieben.
Viele Grüße
Florian

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

Betreff
Datum
Anwender
Anzeige
AW: Datenimport aus verschiedenen Ordnern
23.08.2019 00:28:21
Rudi
Hallo,
als Anregung:
Sub aaa()
Dim fs As Object, fd As Object, sf As Object, f As Object
Set fs = CreateObject("scripting.filesystemobject")
Set fd = fs.getfolder("c:\test")  'oder Hauptordner\2019-09
For Each sf In fd.subfolders    'alle Unterordner in Hauptordner\2019-09
For Each f In sf.Files        'alle Dateien in Hauptordner\2019-09\Unterordner
If f Like "*BWA.txt" Then
'mach was
End If
Next f
Next d
End Sub

Gruß
Rudi
AW: Datenimport aus verschiedenen Ordnern
23.08.2019 13:28:41
Florian
Hallo Rudi,
danke für die Antwort. Leider bekomme ich das nicht zum laufen. Kannst du mir das einmal so fertig machen, dass der Inhalt der Dateien in eine Excel kopiert wird, entweder in bestehende Reiter oder dass neue Sheets erstellt werden.
Vielen Dank
Florian
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige