Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

mehrere TXT-Dateinen nach Excel importieren





Frage

Moinsen, ich habe ein Problem, dass mich an meine Grenzen führt. Ich muss zur weiteren Verwendung aus einer Software Datensätze exportieren. Diese exportierten Datensätze liegen dann im Format *.txt vor und werden in Excel zusammengefasst. D.h. ich muss mehrere TXT-Dateien nach Excel importieren. Diese einzelnen Dateien werden jeweils einem eigenen Tabellenblatt zugewiesen. Z.Zt. mache ich das auf dem berühmten manuellen Wege und erzeuge eine entsprechende Anzahl von Tabellenblättern, benenne sie entsprechend und importiere die entsprechenden Datensätze schön zu Fuss. Da ich das nun öfter machen darf und es sich um eine unterschiedliche Anzahl von Datensätzen (in der Regel zwischen 5 und 30 txt-Dateien) handelt, möchte ich das automatisieren. Ich habe keine Ahnung wo ich anfangen soll und wie das geht. Konvertiungsparameter (über den Textkonvertierungsassitenten) sind: ursprünglicher Dateityp: getrennt Import beginnend in Zeile 6 Dateiursprung 1250 Mitteleuropäisch (Windows) Trennzeichen Semikolon alles andere bleibt unverändert Die TXT-Dateien werden immer aus dem gleichen Ordner importiert. Die Ausgangssoftware vergibt immer gleich aufgebaute Dateinamen, die für die Benennung der Tabellenblätter eine Rolle spielen. Der Tabellenblattname ergibt sich immer aus den letzten Stellen des Dateinamens = Datum des Datensatzes bzw. Datumsbereich Beispiel: C_Müller_Peter_2008-02-20_15-05-13_3722_A1_20080115-20080220.txt C_Müller_Peter_2008-02-20_15-05-13_3722_D1_20080219.txt C_Müller_Peter_2008-02-20_15-05-13_3722_D1_20080216.txt C_Müller_Peter_2008-02-20_15-05-13_3722_D1_20080215.txt oder mit zwei oder mehr Vornamen C_Meier_Klaus_Bärbel_2008-02-20_15-05-13_3722_A1_20080115-20080220.txt C_Meier_Klaus_Bärbel_2008-02-20_15-05-13_3722_D1_20080219.txt Wer aus dieser Gemeinde kann mir helfen?

Antwort 1 von gast123

hi all

ein beispiel

gruss gast123

Sub TxtFilesListen()
Call EventsOff
Dim Dateien As Integer
Dim DateiName As String
With Application.FileSearch
.NewSearch
.LookIn = "C:\Temp\"
.SearchSubFolders = False
.Filename = "*.txt"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
ThisWorkbook.Worksheets.Add , ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = Mid(DateiName, 1, Len(DateiName) - 4)
With ThisWorkbook.Sheets(Mid(DateiName, 1, Len(DateiName) - 4)).QueryTables.Add(Connection:="TEXT;" & "C:\Temp\" & Mid(DateiName, 1, Len(DateiName)), Destination:=Range("A1"))
    .Name = "ob1201_2"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = xlWindows
    .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)
    .Refresh BackgroundQuery:=False
End With
Next Dateien
End If
End With
ThisWorkbook.Worksheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Delete
Call EventsOn
End Sub


Public Sub EventsOff()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub


Public Sub EventsOn()
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub


Antwort 2 von Krischan02

Hallo gast123,

ich habe deine Vorlage in Excel eingegeben, leider wirft er eine Fehlermeldung raus.

Und zwar in dieser Zeile, was kann da falsch sein?

With ThisWorkbook.Sheets(Mid(DateiName, 1, Len(DateiName) - 4)).QueryTables.Add(Connection:="TEXT;" & "C:\Temp\" & Mid(DateiName, 1, Len(DateiName)), Destination:=Range("A1"))


und hier zeigt es auch was falsches an:

ThisWorkbook.Worksheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Delete


???

Antwort 3 von gast123

hi all

in der ersten angegebenen zeile,an den pfad gedacht ?

in der zweiten angegebenen zeile wird vorausgesetzt das
Tabelle1/Tabelle2/Tabelle3 vorhanden sind,diese zeile koennte auch geloescht werden bei nicht bedarf

excel 7 ausgeschlossen

gruss gast123

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: