Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Konvertierung von Tabstopp getrennten Textdateien in xls Format mit VBA

Frage Microsoft Microsoft Office

Mitglied: Andre05308

Andre05308 (Level 1) - Jetzt verbinden

05.09.2011, aktualisiert 18.10.2012, 4226 Aufrufe, 8 Kommentare

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:

01.
0,26	0,35	0,41	0,46	0,47	0,48	0,49	0,50	0,52 
02.
0,54	0,53	0,52	0,49	0,46	0,45	0,44	0,46	0,47 
03.
0,49	0,51	0,48	0,45	0,45	0,50	0,50	0,60	0,69 
04.
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!
Mitglied: Skyemugen
05.09.2011 um 11:28 Uhr
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é
Bitte warten ..
Mitglied: 99045
05.09.2011 um 11:49 Uhr
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ß
Bitte warten ..
Mitglied: bastla
05.09.2011, aktualisiert 18.10.2012
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
Bitte warten ..
Mitglied: Andre05308
05.09.2011 um 14:48 Uhr
Vielen Dank für die schnellen und sehr hilfreichen Antworten, hat mir sehr geholfen!!! Ich bin echt begeistert von diesem Forum, habe nicht mit so schnellen Antworten gerechnet. Die Lösung von bastla hat mich schnell zm Ziel gebracht, ich musste lediglich noch das .csv in der .bat durch ein .txt ersetzen.

Eine Frage habe ich noch: Kann ich die VBS auch in ein Modul meiner PERSONAL.XLSB schreiben oder zumindest aus einem Modul aus aufrufen?

Oder sollte ich lieber versuchen mich auf VBS umzustellen und nur noch mit vbs Dateien arbeiten?

Grüße André
Bitte warten ..
Mitglied: bastla
05.09.2011 um 15:10 Uhr
Hallo Andre05308!
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
Bitte warten ..
Mitglied: 99045
05.09.2011 um 15:13 Uhr
@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.

01.
Option Explicit  
02.
 
03.
Sub Convert_CSV_to_XLS()  
04.
Dim i As Long, verz As String  
05.
Dim dateiForm As String  
06.
'Mit Backslash am Ende  
07.
verz = "C:\Ordner1\"  
08.
'Dateiform  
09.
dateiForm = "csv"  
10.
On Error GoTo fehler  
11.
ChDrive Left(verz, 2)  
12.
ChDir verz  
13.
With Application.FileSearch  
14.
    .NewSearch  
15.
    .LookIn = verz  
16.
    .SearchSubFolders = False  
17.
    .FileType = msoFileTypeAllFiles  
18.
    .Execute  
19.
     For i = 1 To .FoundFiles.Count  
20.
          Application.StatusBar = "Datei " & i & " von " & .FoundFiles.Count & " wird bearbeitet"  
21.
          If Right(.FoundFiles(i), 3) = dateiForm Then  
22.
               Application.ScreenUpdating = False  
23.
               Debug.Print .FoundFiles(i)  
24.
               Workbooks.Open .FoundFiles(i), local:=True  
25.
               ActiveWorkbook.SaveAs Left(.FoundFiles(i), Len(.FoundFiles(i)) - 3) & "xls"  
26.
               ActiveWorkbook.Close False  
27.
               Application.ScreenUpdating = True  
28.
          End If  
29.
     Next i  
30.
End With  
31.
ErrorExit:  
32.
Application.ScreenUpdating = True  
33.
Application.StatusBar = False  
34.
Exit Sub  
35.
 
36.
fehler:  
37.
MsgBox Err.Number & "; " & Err.Description  
38.
Resume ErrorExit  
39.
End Sub
Gruß
Bitte warten ..
Mitglied: bastla
05.09.2011 um 15:31 Uhr
@99045

Ich mag's zwar nicht testen, aber mit der folgenden Zeile 24 könnte das gehen:
               .Workbooks.OpenText .FoundFiles(i) , , , , , , True
Grüße
bastla
Bitte warten ..
Mitglied: 99045
05.09.2011 um 15:45 Uhr
Danke, bastla,
brauchst du auch nicht zu testen, es war nur als evtl. Tipp für den TO gedacht.

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst VBA Text mit Format übertragen und Zeichen ergänzen (11)

Frage von Dau12345 zum Thema VB for Applications ...

VB for Applications
gelöst Wie mittels VBA beim Import von CSV dateien das Format aller Zellen auf "Zahl" ändern? (2)

Frage von Glibber4 zum Thema VB for Applications ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...