Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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

Suchen und import von txt-Datei aus Unterverzeich

Suchen und import von txt-Datei aus Unterverzeich
11.01.2016 14:41:11
txt-Datei
Hallo liebe Foristen,
Mit nachfolgendem Code liest Excel Textdateien aus einem Verzeichnis in ein Excel-Arbeitsblatt.
Dabei wird die Textdatei Zeile für Zeile ausgelesen und in Kolonnen wiedergegeben. Jede weitere Textdatei wird in einer neuen Zeile des Arbeitsblattes wiedergegeben.
Sub importtxt()
Set ws = ThisWorkbook.Sheets(1)
Set fso = CreateObject("Scripting.FileSystemObject")
x = ws.UsedRange.Rows.Count + 1
Folder = Dir("C:\VBA\*.txt")
Application.ScreenUpdating = False
Do While Folder  ""
t = Split(fso.OpenTextFile("C:\VBA\" & Folder).readall, vbNewLine)
ws.Cells(x, 1).Resize(1, UBound(t) + 1).Value = t
x = x + 1
Folder = Dir
Loop
ws.UsedRange.Columns.AutoFit
Application.ScreenUpdating = True
End Sub

Soweit funktioniert das auch. Allerdings - Ordnung muss sein - wurden im Verzeichnis, zum Teil, Unterverzeichnisse angelegt, mit vielleicht eigenen Unterverzeichnissen. Da funktioniert der Code nicht mehr, da er ja nur im Verzeichnis "VBA" sucht. Wie könnte man dies umschreiben, damit man auch Unterverzeichnisse auf Textdateien durchsucht und importiert?
Ganz untätig war ich allerdings nicht. Folgenden Code habe ich mal gefunden (Vielleicht als Hilfestellung?). Mit diesem kann man Unterverzeichnisse durchsuchen, der gibt dann allerdings nur die Dateipfade wieder. Das will ja ich nicht, ich will ja die Daten importieren. Ich versuchte also beide irgendwie zu kombinieren...ohne Erfolg, da es meinen momentanen VBA-Horizont übersteigt. Hätte da jemand eine Idee? Über jede Hilfe wäre ich sehr dankbar!
Option Explicit
Public objFSO As Object
Sub TestIt()
Set objFSO = CreateObject("Scripting.FileSystemObject")
GetFiles ("C:\VBA")
End Sub
Sub GetFiles(ByVal strDirectory)
Dim objFolder As Folder
Dim objFile As File
Set objFolder = objFSO.GetFolder(strDirectory)
For Each objFile In objFolder.Files
Debug.Print objFile.Path
Next
For Each objFolder In objFolder.SubFolders
GetFiles objFolder.Path
Next
End Sub

Mit besten Grüßen
Michael

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und import von txt-Datei aus Unterverzeich
11.01.2016 16:35:42
txt-Datei
Hallo,
teste mal:
Option Explicit
Public objFSO As Object
Sub TestIt()
Set objFSO = CreateObject("Scripting.FileSystemObject")
GetFiles ("C:\VBA")
End Sub
Sub GetFiles(ByVal strDirectory)
Dim objFolder As Object
Dim objFile As Object
Set objFolder = objFSO.GetFolder(strDirectory)
For Each objFile In objFolder.Files
Call ImportTxt(objFile.Path)
Next
For Each objFolder In objFolder.SubFolders
GetFiles objFolder.Path
Next
End Sub
Sub ImportTxt(strFolder As String)
Dim ws As Worksheet, x As Long, Folder As String, t
Set ws = ThisWorkbook.Sheets(1)
x = ws.UsedRange.Rows.Count + 1
If Right(strFolder, 1)  "\" Then strFolder = strFolder & "\"
Folder = Dir(strFolder & "*.txt")
Application.ScreenUpdating = False
Do While Folder  ""
t = Split(objFSO.OpenTextFile("C:\VBA\" & Folder).readall, vbNewLine)
ws.Cells(x, 1).Resize(1, UBound(t) + 1).Value = t
x = x + 1
Folder = Dir
Loop
ws.UsedRange.Columns.AutoFit
Application.ScreenUpdating = True
End Sub

Gruß
Rudi

Anzeige
AW: Suchen und import von txt-Datei aus Unterverzeich
11.01.2016 20:19:24
txt-Datei
Hallo Rudi,
Erstmal vielen Dank für deine Mühe. Da wäre ich nicht so schnell darauf gekommen.
Ich haben deinen Code direkt mal in ein Modul kopiert und einmal Schrittweise durchlaufen lassen.
Im Sub Importtxt bekomme ich leider in der 6ten Zeile Folder = Dir(strFolder & "*.txt") einen Laufzeitfehler ('52' Dateiname oder -nummer falsch). Müsste man vielleicht nochmal den Pfad für strFolder angeben? Da macht es aber komische Sachen :P
Grüße,
Michael

Suchen und import von txt-Datei aus Unterverzeich
12.01.2016 16:08:47
txt-Datei
Hallo Michael,
probier's hiermit:
Option Explicit
Public objFSO As Object, ws As Worksheet, x As Long
Sub start()
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ws = ThisWorkbook.Sheets(1)
x = ws.UsedRange.Rows.Count + 1
Application.ScreenUpdating = False
GetFiles ("C:\temp") 'Pfad anpassen
ws.UsedRange.Columns.AutoFit
Application.ScreenUpdating = True
Set objFSO = Nothing
Set ws = Nothing
End Sub
Sub GetFiles(ByVal strDirectory)
Dim objFolder As Object
Dim objFile As Object
Dim t
Set objFolder = objFSO.GetFolder(strDirectory)
For Each objFile In objFolder.Files
If LCase(objFSO.GetExtensionName(objFile)) = "txt" Then
'Debug.Print objFile
t = Split(objFSO.OpenTextFile(objFile).readall, vbNewLine)
ws.Cells(x, 1).Resize(1, UBound(t) + 1).Value = t
x = x + 1
End If
Next
For Each objFolder In objFolder.SubFolders
GetFiles objFolder.Path
Next
End Sub

mfg Anton

Anzeige
AW: Suchen und import von txt-Datei aus Unterverzeich
12.01.2016 17:27:28
txt-Datei
Hallo Anton,
Vielen, vielen Dank! Funktioniert wunderbar! Rüberkopiert, Pfad angepasst und schon waren alle Daten da.
:D
Besten Dank!
MbG
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige