Supportnet / Forum / Tabellenkalkulation
Excel in txt umwandeln
Frage
Hallo,
ich möchte eine Excel-Datei in eine Textdatei speichern.
Wie kann ich vermeiden dass in der Textdatei jedesmal ein Tab-Stopp oder 5-10 Leerzeichen nach jeder Spalte entstehen. Ich brauche in der Textdatei eine zusammenhängende Zeile mit max. 1 Leerzeichen zwischen den Spalten in Excel.
Danke
Antwort 1 von Nicolas
sollte das beim csv export nicht so sein? sind dann aber Trennzeichen zwischen den Spalten
Antwort 2 von Abrangl
danke, aber es dürfen auch sonst keine Trennzeichen dazwischen sein, weil die Zeile später als Programmzeile eingelesen werden soll.
Antwort 3 von Primut
Hi Abrangel,
ich habs eben mal probiert als formatierten Text abzuspeichern .prn, dabei werden Leerzeichen als Spaltentrennung mitgespreichert. Diese Leerzeichen dann ganz einfach im Texteditor löschen, d.h. durch nichts ersetzten und Datei in .txt umnennen, funzt bei mir .
Gruß Primut
ich habs eben mal probiert als formatierten Text abzuspeichern .prn, dabei werden Leerzeichen als Spaltentrennung mitgespreichert. Diese Leerzeichen dann ganz einfach im Texteditor löschen, d.h. durch nichts ersetzten und Datei in .txt umnennen, funzt bei mir .
Gruß Primut
Antwort 4 von piano
Hallo
Ich schlage vor, den Text bereits in Excel aufzubereiten.
Im Beispiel Annahme, dass 5 Spalten ab Spalte "A" verwendet werden.
Hier wird vorne eine Spalte eingefügt, alle Felder hier mit Leerzeichen als Trennung zusammengeführt und die Originalfelder gelöscht.
Die Funktion Ersetzen() entfernt überflüssige Leerzeichen.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Ich schlage vor, den Text bereits in Excel aufzubereiten.
Im Beispiel Annahme, dass 5 Spalten ab Spalte "A" verwendet werden.
Sub Aufbereiten_Text()
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=RC[1] & "" "" & RC[2] & "" "" & RC[3] & "" "" & RC[4] & "" "" & RC[5]"
Range("A1").Select
Selection.AutoFill Destination:=Range("A1:A3"), Type:=xlFillDefault
Range("A1:A3").Select
Columns("A:A").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A5").Select
Columns("B:G").Select
Selection.ClearContents
x = Ersetzen()
End Sub
Function Ersetzen()
Dim i As Long, z As Long
Range("A65536").End(xlUp).Offset(1, 0).Select
z = ActiveCell.Row - 1
For i = 1 To z
Cells(i, 1).Value = Trim(Cells(i, 1).Value)
Next i
Columns("A:A").Select
Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Function
Hier wird vorne eine Spalte eingefügt, alle Felder hier mit Leerzeichen als Trennung zusammengeführt und die Originalfelder gelöscht.
Die Funktion Ersetzen() entfernt überflüssige Leerzeichen.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von Abrangl
Hallo piano,
das ist wirklich sehr lieb von dir, aber so gut bin ich nun auch wieder nicht. Mit Makros kenne ich mich gar nicht aus.
Kannst du mir vielleicht auch noch schreiben, wo ich das ganze eingeben soll?
Danke im voraus
das ist wirklich sehr lieb von dir, aber so gut bin ich nun auch wieder nicht. Mit Makros kenne ich mich gar nicht aus.
Kannst du mir vielleicht auch noch schreiben, wo ich das ganze eingeben soll?
Danke im voraus
Antwort 6 von piano
Hallo
Mit Alt/F11 in die VBA -Umgebung, im Projektfenster " Diese Arbeitsmappe" anklicken, Einfügen / Modul.
In das leere Fenster den Code kopieren.
Der Aufruf erfolgt über Extras /Makro / Makros - Makro anklicken - und Ausführen. Man kann natürlich auch einen Button erzeugen, mit dem der Makro aufgerufen wird. Es gibt dazu sicher Beiträge im Forum bzw. in der Office-Hilfe.
Gruss piano
Mit Alt/F11 in die VBA -Umgebung, im Projektfenster " Diese Arbeitsmappe" anklicken, Einfügen / Modul.
In das leere Fenster den Code kopieren.
Der Aufruf erfolgt über Extras /Makro / Makros - Makro anklicken - und Ausführen. Man kann natürlich auch einen Button erzeugen, mit dem der Makro aufgerufen wird. Es gibt dazu sicher Beiträge im Forum bzw. in der Office-Hilfe.
Gruss piano
Antwort 7 von Abrangl
Hallo piano,
habe das jetzt gemacht aber es kommt "Fehler beim komplieren, außerhalb einer Prozedur ungültig" markiert wird dabei das "A:A" in der ersten Zeile.
Was mache ich falsch?
habe das jetzt gemacht aber es kommt "Fehler beim komplieren, außerhalb einer Prozedur ungültig" markiert wird dabei das "A:A" in der ersten Zeile.
Was mache ich falsch?
Antwort 8 von piano
Hallo
Fehlt Dir vielleicht die 1.Zeile
Fehlt Dir vielleicht die 1.Zeile
Zitat:
Sub Aufbereiten_Text()
?Sub Aufbereiten_Text()
Antwort 9 von Abrangl
Hallo piano,
hast recht habe ich übersehen. Schussel
vielen dank hast mir sehr geholfen.
hast recht habe ich übersehen. Schussel
vielen dank hast mir sehr geholfen.
Antwort 10 von Abrangl
Hallo piano,
kannst du mir bitte nochmal helfen?
wenn ich das Makro ausführe kommt Laufzeitfehler 1004
und dann Anwendungs- oder Objektdefinierter Fehler
Beim Debuggen wird folgendes markiert:
Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Kannst du dich nochmal erbarmen?
Gruß
kannst du mir bitte nochmal helfen?
wenn ich das Makro ausführe kommt Laufzeitfehler 1004
und dann Anwendungs- oder Objektdefinierter Fehler
Beim Debuggen wird folgendes markiert:
Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Kannst du dich nochmal erbarmen?
Gruß

