Konvertierung von Tabstopp getrennten Textdateien in xls Format mit VBA
Hallo Administrator.de User,
ich arbeite seit kurzem mit VBA um eine größere Menge von Messdaten in Excel zusammenzuführen und auszuwerten. In diesem Forum habe ich mich angemeldet, da ich schon vom mehreren Beiträgen profitiert habe und die Mitglieder schnelle und kompetente Antworten geben. Außerdem hoffe ich meine Fähigkeiten auszubauen um auch anderen Usern helfen zu können.
Ich bekomme von einem Programm Textdateien mit einem Zahlenteppich ausgeben, der eine variable Anzahl von Zeilen und Spalten hat.
Die Spalten sind durch Tabstopps getrennt und die Zeilen durch Zeilenumbrüche. Alle Dateien befinden sich im selben Verzeichnis und haben verschiedene Dateinamen.
Auszug des Inhalts einer Textdatei:
Nun möchte ich diese Dateien mit der Hilfe von VBA in eine Datei mit dem Format .xls umwandeln.
Die Dateinamen sollen bestehen bleiben.
Ich arbeite mit MS Office 2007
Ich hoffe ich habe keine wichtigen Informationen vergessen.
Vielen Dank im Voraus!
ich arbeite seit kurzem mit VBA um eine größere Menge von Messdaten in Excel zusammenzuführen und auszuwerten. In diesem Forum habe ich mich angemeldet, da ich schon vom mehreren Beiträgen profitiert habe und die Mitglieder schnelle und kompetente Antworten geben. Außerdem hoffe ich meine Fähigkeiten auszubauen um auch anderen Usern helfen zu können.
Ich bekomme von einem Programm Textdateien mit einem Zahlenteppich ausgeben, der eine variable Anzahl von Zeilen und Spalten hat.
Die Spalten sind durch Tabstopps getrennt und die Zeilen durch Zeilenumbrüche. Alle Dateien befinden sich im selben Verzeichnis und haben verschiedene Dateinamen.
Auszug des Inhalts einer Textdatei:
0,26 0,35 0,41 0,46 0,47 0,48 0,49 0,50 0,52
0,54 0,53 0,52 0,49 0,46 0,45 0,44 0,46 0,47
0,49 0,51 0,48 0,45 0,45 0,50 0,50 0,60 0,69
0,78 1,05 1,12 1,19 1,31 1,42 1,46 1,50 1,54
Nun möchte ich diese Dateien mit der Hilfe von VBA in eine Datei mit dem Format .xls umwandeln.
Die Dateinamen sollen bestehen bleiben.
Ich arbeite mit MS Office 2007
Ich hoffe ich habe keine wichtigen Informationen vergessen.
Vielen Dank im Voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 172564
Url: https://administrator.de/forum/konvertierung-von-tabstopp-getrennten-textdateien-in-xls-format-mit-vba-172564.html
Ausgedruckt am: 20.05.2025 um 12:05 Uhr
8 Kommentare
Neuester Kommentar
Aloha,
du weißt aber, dass Excel die Datei auch simpel öffnen kann, wenn du die Endung von .txt in .xls umänderst? (um das für alle Dateien zu tun, reicht ein simpler cmd-oneliner
)
Zwar meckert es einmalig beim Öffnen rum aber unterteilt dennoch sauber in Zeilen und Spalten
(und man kann dann ja speichern klicken und schon wird es mit der Excelkonfiguration überschrieben)
greetz André
du weißt aber, dass Excel die Datei auch simpel öffnen kann, wenn du die Endung von .txt in .xls umänderst? (um das für alle Dateien zu tun, reicht ein simpler cmd-oneliner
Zwar meckert es einmalig beim Öffnen rum aber unterteilt dennoch sauber in Zeilen und Spalten
greetz André

Hi,
es gibt mehrere Möglichkeiten, die .txt mit Excel zu öffnen:
1. Rechtsklick auf die Textdatei > Öffnen mit > Excel
2. Verknüpfung zu Exec.exe erstellen, Textdatei mit Drag&Drop auf diese Verknüpfung ziehen
3. Exxel > Datei > Öffnen > Dateityp auf .txt stellen > Textdatei öffnen > Fragen nach der Formatierung beantworten (steht eigentlich schon richtig) > Textdatei auswählen > "Fertig stellen"
In allen Fällen als .xls speichern.
Umbenennen muss man die Textdatei dazu nicht.
Wenn's denn doch wirklich mit VBA sein muss: Das ist nicht mein Ding.
Gruß
es gibt mehrere Möglichkeiten, die .txt mit Excel zu öffnen:
1. Rechtsklick auf die Textdatei > Öffnen mit > Excel
2. Verknüpfung zu Exec.exe erstellen, Textdatei mit Drag&Drop auf diese Verknüpfung ziehen
3. Exxel > Datei > Öffnen > Dateityp auf .txt stellen > Textdatei öffnen > Fragen nach der Formatierung beantworten (steht eigentlich schon richtig) > Textdatei auswählen > "Fertig stellen"
In allen Fällen als .xls speichern.
Umbenennen muss man die Textdatei dazu nicht.
Wenn's denn doch wirklich mit VBA sein muss: Das ist nicht mein Ding.
Gruß
Hallo Andre05308 und willkommen im Forum!
Vor laaanger Zeit habe ich hier mal etwas zu einem ähnlichen Thema (allerdings als VBS) verbrochen - wenn Du in Zeile 52 ein Komma weglässt, sollte auch "TAB" als Trennzeichen verwendet werden.
Grüße
bastla
Vor laaanger Zeit habe ich hier mal etwas zu einem ähnlichen Thema (allerdings als VBS) verbrochen - wenn Du in Zeile 52 ein Komma weglässt, sollte auch "TAB" als Trennzeichen verwendet werden.
Grüße
bastla
Hallo Andre05308!
Grüße
bastla
Kann ich die VBS auch in ein Modul meiner PERSONAL.XLSB schreiben?
Nicht 1:1 - aber Du könntest versuchen, Dich schrittweise an eine VBA-Version heranzutasten (einige Kommentare sind ja dabei); ein eigenes "Excel"-Objekt müsstest Du zB nicht erzeugen, wenn Du ohnehin schon Excel verwendest ...sollte ich lieber versuchen mich auf VBS umzustellen und nur noch mit vbs Dateien arbeiten?
Nicht unbedingt - von der Systemebene her (wie zB Aufruf per Batch) ist VBS besser verwendbar, ansonsten ist VBA handlicher (Stichwort: Editor) und auf Office "zugeschnitten" - daher je nach Bedarf.Grüße
bastla

@bastla
Moin,
hab im Netz den Code gefunden, du kannst ihn ja evtl. für TAB anpassen, wenn du Lust hast? Ich mag VBA nicht.
Gruß
Moin,
hab im Netz den Code gefunden, du kannst ihn ja evtl. für TAB anpassen, wenn du Lust hast? Ich mag VBA nicht.
Option Explicit
Sub Convert_CSV_to_XLS()
Dim i As Long, verz As String
Dim dateiForm As String
'Mit Backslash am Ende
verz = "C:\Ordner1\"
'Dateiform
dateiForm = "csv"
On Error GoTo fehler
ChDrive Left(verz, 2)
ChDir verz
With Application.FileSearch
.NewSearch
.LookIn = verz
.SearchSubFolders = False
.FileType = msoFileTypeAllFiles
.Execute
For i = 1 To .FoundFiles.Count
Application.StatusBar = "Datei " & i & " von " & .FoundFiles.Count & " wird bearbeitet"
If Right(.FoundFiles(i), 3) = dateiForm Then
Application.ScreenUpdating = False
Debug.Print .FoundFiles(i)
Workbooks.Open .FoundFiles(i), local:=True
ActiveWorkbook.SaveAs Left(.FoundFiles(i), Len(.FoundFiles(i)) - 3) & "xls"
ActiveWorkbook.Close False
Application.ScreenUpdating = True
End If
Next i
End With
ErrorExit:
Application.ScreenUpdating = True
Application.StatusBar = False
Exit Sub
fehler:
MsgBox Err.Number & "; " & Err.Description
Resume ErrorExit
End Sub
Gruß

Danke, bastla,
brauchst du auch nicht zu testen, es war nur als evtl. Tipp für den TO gedacht.
Gruß
brauchst du auch nicht zu testen, es war nur als evtl. Tipp für den TO gedacht.
Gruß