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

Text files einlesen

Text files einlesen
28.06.2013 08:09:13
stef26
Hallo Zusammen,
es gibt ja schon zig Macros mit denen man aus einem Ordner viele txt Files einlesen kann. Hab mir hier den passenden für mich rausgesucht und an meine Bedürfnisse angepasst.
Kann mir jemand sagen, warum nicht alle Files aus dem Ordner eingelesen werden, sondern immer nur eines der txt-Files und diese zig mal ?
Sub txtImport()
Dim strPfad As String
Dim FSO As Object
Dim file
Dim lngLR As Long
'Anpassen
strPfad = "C:\TEST\"
Set FSO = CreateObject("scripting.filesystemobject")
For Each file In FSO.getfolder(strPfad).Files
strFileName = Dir(strPfad & "*.txt")
strDestination = "A" & Cells(Rows.Count, 1).End(xlUp).Row + 1
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & strPfad & strFileName, Destination:=Range( _
strDestination))
.Name = "TEXTFILES" 'Name des Tabellenblattes nach Import
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Next
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text files einlesen
28.06.2013 09:56:05
Rudi
Hallo,
mit strFileName = Dir(strPfad & "*.txt") liest du immer die gleiche Datei.
Sub txtImport()
Dim strPfad As String
Dim FSO As Object
Dim oFile
Dim lngLR As Long
Dim strDestination As String
'Anpassen
strPfad = "C:\TEmp\"
Set FSO = CreateObject("scripting.filesystemobject")
For Each oFile In FSO.getfolder(strPfad).Files
If LCase(oFile.Name) Like "*.txt" Then
strDestination = "A" & Cells(Rows.Count, 1).End(xlUp).Row + 1
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & oFile, Destination:=Range( _
strDestination))
.Name = Left(oFile.Name, Len(oFile.Name) - 4) '"TEXTFILES" 'Name des Tabellenblattes  _
nach Import
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
Next
End Sub

Gruß
Rudi

Anzeige
AW: Text files einlesen
28.06.2013 10:16:16
stefan
Hallo Rudi,
danke für die schnelle Hilfe !!!
Kannst du mir sagen, ob es möglich ist, den Namen der Textdatei mit in eine
Spalte (z.B. Spalte A) zu übertragen ?
Ich bräuchte noch irgendwie den Namen der TXT...
:-)
Stefan

AW: Text files einlesen
28.06.2013 11:03:43
Rudi
Hallo,
sicher geht das.
Sub txtImport()
Dim strPfad As String
Dim FSO As Object
Dim oFile
Dim lngLR As Long
Dim strDestination As String
Dim lRow As Long
'Anpassen
strPfad = "C:\TEmp\"
Set FSO = CreateObject("scripting.filesystemobject")
For Each oFile In FSO.getfolder(strPfad).Files
If LCase(oFile.Name) Like "*.txt" Then
lRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
strDestination = "A" & lRow
With ActiveSheet.QueryTables.Add( _
Connection:="TEXT;" & oFile, _
Destination:=Range(strDestination))
.Name = "TEXTFILES" 'Name des Tabellenblattes nach Import
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range(Cells(lRow, 1), Cells(UsedRange.Rows.Count, 1)) = oFile.Name
End If
Next
End Sub

Gruß
Rudi

Anzeige
AW: Text files einlesen
28.06.2013 11:36:00
stefan
Hallo Rudi,
leider bleibt das Macro bei der Stelle
Range(Cells(lRow, 1), Cells(UsedRange.Rows.Count, 1)) = oFile.Name
stehen ?
Gruß
Stefan

AW: Text files einlesen
28.06.2013 15:22:49
stefan
Danke Rudi für deine Hilfe.
Habs noch hinbekommen !
Danke
Gruß
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige