Microsoft Excel

Herbers Excel/VBA-Archiv

TXT - Dateien aus Verz. kopieren und zus.fassen | Herbers Excel-Forum


Betrifft: TXT - Dateien aus Verz. kopieren und zus.fassen von: brend
Geschrieben am: 27.01.2010 15:36:27

Hallo Freaks,

ich habe x - viele Dateien im txt - Format (Text tabstopp-getrennt) in einem Verzeichnis liegen. Alle Dateien weisen den gleichen Aufbau auf (Format, Zeilen, Spalten). Der einzige Unterschied ist der Zellinhalt (Wert) und der Dateiname.

konkretes Beispiel:
https://www.herber.de/bbs/user/67559.txt

Diese x-vielen Dateien sollen alle in einem einzigen Arbeitsblatt zusammenkopiert werden.

Geht das mit txt denn überhaupt - soll heißen - zusammenfassen und das txt.-Format dabei beibehalten??

Wenn das nicht geht, könnten auch den txt-Dateien zugrundeliegenden Excel-Dateien ausgelesen und zusammengefasst werden.

Es gibt diese Bsp. aus dem Forum. Das kann ich aber nicht anpassen...
https://www.herber.de/bbs/user/65326.xls

Bitte Euch um Hilfe.

Grüé
Brend

  

Betrifft: AW: TXT - Dateien aus Verz. kopieren und zus.fassen von: Tino
Geschrieben am: 27.01.2010 19:15:49

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


  

Betrifft: @ Tino: Du bist der Größte! Danke! von: brend
Geschrieben am: 27.01.2010 22:30:12


Hallo Tino,
funktioniert perfekt. Vielen Dank dafür. Du hast mir damit sehr geholfen.

Super. Danke!

Grüße
brend


  

Betrifft: eher nicht bin 1,72m groß, mehr nicht ;-) oT. von: Tino
Geschrieben am: 28.01.2010 08:11:14




Beiträge aus den Excel-Beispielen zum Thema "TXT - Dateien aus Verz. kopieren und zus.fassen"