AW: TXT - Dateien aus Verz. kopieren und zus.fassen
27.01.2010 19:15:49
Tino
Hallo,
kannst mal diesen Code testen.
Erst werden alle Textdateien zu einer zusammenkopiert,
danach wird diese über QueryTables eingelesen und zum Schluss diese Datei wieder gelöscht.
Den Pfad und die Tabelle wo die Daten hin sollen müsstest Du noch anpassen.
kommt als Code in Modul1
Option Explicit
Sub Test()
Dim Quelle$, ZielAll$
Dim i As Integer
Quelle = "C:\Meine Textdateien\" 'Pfad anpassen
ZielAll = "AllTXT.txt" 'tempName
ChDrive Left$(Quelle, 2)
ChDir Quelle
Shell "cmd.exe /c copy *.txt " & ZielAll, vbHide ' & ZielAll
'Maximal 10 Sekunden warten
Do While Dir(Quelle & ZielAll) = "" And i <= 10
DoEvents
Application.Wait Now + TimeSerial(0, 0, 1)
i = i + 1
Loop
If Dir(Quelle & ZielAll) = "" Then Exit Sub
'Text Datei einlesen, 1. Parameter Tabelle, 2. File
LeseTxtFile Tabelle1, Quelle & ZielAll
'Datei wieder löschen
Kill Quelle & ZielAll
End Sub
kommt als Code in Modul2
Option Explicit
Sub LeseTxtFile(oSh As Worksheet, strPfad$)
Dim oQuery As QueryTable
oSh.UsedRange.Clear
With oSh.QueryTables.Add(Connection:= _
"TEXT;" & strPfad, Destination:=Range("$A$1"))
.Name = "All"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
For Each oQuery In oSh.QueryTables
oQuery.Delete
Next oQuery
End Sub
Gruß Tino