CSV in Text datei umwandeln
Ich habe eine CSV-Datei (Excel) und möchte diese in eine TXT-Datei umwandeln. Die Einträge ohne tabstopp sein, so dass die Zahlen ohne leerzeichen stehen. Könnt ihr mir helfen??????
*Threadedit* 20:15:28
Admininfo: bitte vermeide Mehrfachanfragen in verschiedenen, bzw. gleichen Gruppen.
Die Datenbank und User werden es dir danken. Siehe FAQ 2.
Antwort schreiben
Antwort 1 von Marie vom 31.10.2019, 13:01 Options
Datei, speichern unter .....
den Rest verstehe ich nicht.
Zitat:
Die Einträge ohne tabstopp sein, so dass die Zahlen ohne leerzeichen stehen
???
Erklär mal genauer, was passt Dir nicht bei formatierter Text oder Text Tabs getrennt, wodurch willst Du denn unterscheiden wo ein Feld aufhört und das nähste beginnt, wenn nicht durch Leerzeichen und nicht durch Tabs?? Sag doch was Du stattdessen willst, dann kann Dir vermutlich geholfen werden.
Gruß marie
Antwort 2 von steffen2 vom 31.10.2019, 13:13 Options
öffne die Datei in Word und ersetzte Tabstop durch WasAuchImmer
du kannst die CSV auch in TXT umbenennen, das ist ein Text-Format.
Gruß Steffen
Antwort 3 von Beatlefield vom 31.10.2019, 13:15 Options
einfach gar nichts so das die zahlen durchgehend geschrieben werden, wenn du verstehst was i mein, aber schon mal danke schön
Antwort 4 von Marie vom 31.10.2019, 13:34 Options
na dann speicher mal die csv als xls ab, dann öffne sie mit Word. In Word hast Du dann eine Tabelle. Dann markierst Du alles mit "alles markieren" und unter extras findest Du dann Tabelle in Text umwandeln.
Dann würde ich als Trennzeichen das Semikolun wählen und danach mit Suchen und ersetzen das Semikolon ersetzen durch nichts. Dann hast Du noch ein Leerzeichen, damit machst Du dasselbe, also mit Suchen und ersetzen Leerzeichen ersetzen durch nichts. Dann speicherst Du das als textdatei ab, fertig.
Gruß marie
Antwort 5 von Beatlefield vom 31.10.2019, 13:45 Options
danke schön, hat funktioniert
Antwort 6 von Beatlefield vom 31.10.2019, 15:06 Options
hey hab noch ne frage gibts außer word noch ne alternative, so das ich mit makro die schritte gemeinsam aufzeichnen kann, mit word muss ich nämlich immer den makro jeweils im Excel und word neu aufzeichnen lassen
Antwort 7 von Marie vom 31.10.2019, 18:07 Options
Ja suchen und ersetzen geht auch in einer Textdatei, probiers einfach mal.
gruß marie
Antwort 8 von Beatlefield vom 02.11.2019, 12:33 Options
ja gut, aber ich mein das ich den schritt vom speichern einer Exceldatei in eine Textdatei mit makro aufzeichnen kann, des mein ich !!!!
Antwort 9 von Marie vom 02.11.2019, 15:13 Options
Dann muss Du halt in Excel zuerst alle Felder in eines schieben und dann nur dieses eine Feld exportieren.
Dazu müsste man aber erstmal wissen wie Deine Exceltabelle aussieht.
Also angenommen alle Spalten und alle Zeilen sind belegt bis zu einer leeren Zeile und einer leeren Spalte, zwischendrin sind keine leeren Spalten oder Zeilen, dann hast Du natürlich einen ganz anderen Code, wie wenn dazwischen leere Zellen sind.
Ich nehme jetzt mal an Du willst bis zur ersten leeren Spalte und bis zur ersten leeren zeile alles aneinanderhängen:
Dann machst Du in Tabelle 2 alle Daten aus Tabelle 1 und kannst nachher Tabelle 2 exportieren als Textdatei, den letzten Schritt kannst Du ja dann. Also der folgende Code tut was Du willst wenn zwischendurch keine Leerfelder sind, wenn doch musst Du bitte mal genau sagen was in der Tabelle übernommen werden muss.
gruß Marie
Sub FuelleTab2()
Dim zeile As Integer
Dim spalte As Integer
Dim LangString As String
zeile = 1
spalte = 1
LangString = ""
While (Tabelle1.Cells(zeile, spalte) <> "")
While (Tabelle1.Cells(zeile, spalte) <> "")
LangString = LangString + Trim$(Tabelle1.Cells(zeile, spalte))
spalte = spalte + 1
Wend
Tabelle2.Cells(zeile, 1) = LangString
zeile = zeile + 1
spalte = 1
LangString = ""
Wend
End Sub
Antwort 10 von Beatlefield vom 02.11.2019, 15:19 Options
Admininfo: *Threadedit* Siehe FAQ 5.
Antwort 11 von Marie vom 02.11.2019, 15:28 Options
nein, wir supporten hier, damit jeder, der dasselbe Problem hat, hier eine Lösung findet. Dafür muss Du Dich mal ordentlich ausdrücken lernen, was Dir auch nicht schadet.
Also beschreibe mir bitte welche Zellen in Deiner Exceltabelle gefüllt sind und welche möglichrweise nicht, dann kann ich Dir helfen.
Du kannst auch einen screenshot machen und per netupload hochladen und den Link hier einstellen, was ich aber nicht so toll finde, denn in einigen Wochen kann dann niemand mehr nachvollziehen was Du geschickt hast.
Lern Dich lieber so auszudrücken, dass hier jeder versteht was Du meinst.
Gruß marie
Antwort 12 von Beatlefield vom 02.11.2019, 15:43 Options
lol, hast recht, das ist halt schwer zu beschreiben und so, aber egal, die zellen A1-A70 bis F1-F70 sind gefüllt
des mit den screenshot muss ich später machen, aber vlt kannst du mir so weiter helfen
Antwort 13 von Marie vom 02.11.2019, 16:21 Options
Na dann halt eben 70 Zeilen und 6 Spalten, nicht ausprobiert:
Sub FuelleTab2()
Dim zeile As Integer
Dim spalte As Integer
Dim intz As Integer
Dim ints As Integer
Dim LangString As String
zeile = 1
spalte = 1
LangString = ""
For intz = 1 to 70 ' 70 Zeilen ab Zeile 1
For ints = 1 to 6 ' 6 Spalten A bis F
LangString = LangString + Trim$(Tabelle1.Cells(zeile, spalte))
spalte = spalte + 1
next ints
Tabelle2.Cells(zeile, 1) = LangString
zeile = zeile + 1
spalte = 1
LangString = ""
next intz
End Sub
Antwort 14 von Marie vom 02.11.2019, 16:54 Options
Noch einfacher wäre das, aber dann kannst Du nicht mehr nach Belieben die Spalten und Zeilenzahl so einfach variieren.
Sub FuelleTab2()
Dim zeile As Integer
Dim spalte As Integer
Dim LangString As String
LangString = ""
For zeile = 1 to 70 ' 70 Zeilen ab Zeile 1
For spalte = 1 to 6 ' 6 Spalten A bis F
LangString = LangString + Trim$(Tabelle1.Cells(zeile, spalte))
next spalte
Tabelle2.Cells(zeile, 1) = LangString
LangString = ""
next zeile
End Sub
Antwort 15 von Beatlefield vom 05.11.2019, 13:03 Options
hi, eine kurze frage noch und zwar muss ich des ins visual basic editor oder ins microsoft skript editor einfügen???
gruß Beatlefield
Antwort 16 von Marie vom 05.11.2019, 13:11 Options
Vb
Gruß marie
Antwort 17 von Beatlefield vom 07.11.2019, 08:41 Options
danke schön, marie
Antwort 18 von Beatlefield vom 08.11.2019, 14:16 Options
hey wie muss ich des reinschrieben???? So stehts bei mir im vb drin:
Sub Test()
'
' Test Makro
' Makro am 07.11.2007 von htuwe aufgezeichnet
'
'
Columns("A:A").Select
Selection.NumberFormat = "00"
Columns("B:B").Select
Selection.NumberFormat = "000"
Columns("D:D").Select
Selection.NumberFormat = "000000000.00"
Columns("E:F").Select
Selection.ClearContents
Columns("E:E").Select
Selection.NumberFormat = "000000000000000"
Range("E1").Select
ActiveCell.FormulaR1C1 = "0"
Range("E2").Select
ActiveCell.FormulaR1C1 = "0"
Range("E1:E2").Select
Selection.AutoFill Destination:=Range("E1:E72"), Type:=xlFillDefault
Range("E1:E72").Select
ActiveWindow.SmallScroll Down:=-93
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
ActiveCell.FormulaR1C1 = "#"
Columns("D:D").Select
Range("D2").Activate
ActiveCell.FormulaR1C1 = "#"
Range("D1:D2").Select
Selection.AutoFill Destination:=Range("D1:D72"), Type:=xlFillDefault
Range("D1:D72").Select
ActiveWindow.SmallScroll Down:=-75
Range("F1").Select
ChDir "C:\Dokumente und Einstellungen\tstoehr\Desktop"
End Sub
danke für eure hilfe!!!!!!!!!
Antwort 19 von coros vom 08.11.2019, 14:25 Options
Hallo Beatlefield,
klasse Frage. Suuuper gestellt und alle wissen sofort, was Du möchtest. Außer ich. Auch wenn ich nicht blond bin, weiß ich nicht, was Du mit der Frage erreichen möchtest.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 20 von Beatlefield vom 08.11.2019, 14:44 Options
ups, sorry, muss ja allgemien bleiben, also den text wo "marie"
geschickt hat
Sub FuelleTab2()
Dim zeile As Integer
Dim spalte As Integer
Dim intz As Integer
Dim ints As Integer
Dim LangString As String
zeile = 1
spalte = 1
LangString = ""
For intz = 1 to 70 ' 70 Zeilen ab Zeile 1
For ints = 1 to 6 ' 6 Spalten A bis F
LangString = LangString + Trim$(Tabelle1.Cells(zeile, spalte))
spalte = spalte + 1
next ints
Tabelle2.Cells(zeile, 1) = LangString
zeile = zeile + 1
spalte = 1
LangString = ""
next intz
End Sub
in meinen makro
Sub Test()
'
' Test Makro
' Makro am 07.11.2007 von htuwe aufgezeichnet
'
'
Columns("A:A").Select
Selection.NumberFormat = "00"
Columns("B:B").Select
Selection.NumberFormat = "000"
Columns("D:D").Select
Selection.NumberFormat = "000000000.00"
Columns("E:F").Select
Selection.ClearContents
Columns("E:E").Select
Selection.NumberFormat = "000000000000000"
Range("E1").Select
ActiveCell.FormulaR1C1 = "0"
Range("E2").Select
ActiveCell.FormulaR1C1 = "0"
Range("E1:E2").Select
Selection.AutoFill Destination:=Range("E1:E72"), Type:=xlFillDefault
Range("E1:E72").Select
ActiveWindow.SmallScroll Down:=-93
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
ActiveCell.FormulaR1C1 = "#"
Columns("D:D").Select
Range("D2").Activate
ActiveCell.FormulaR1C1 = "#"
Range("D1:D2").Select
Selection.AutoFill Destination:=Range("D1:D72"), Type:=xlFillDefault
Range("D1:D72").Select
ActiveWindow.SmallScroll Down:=-75
Range("F1").Select
ChDir "C:\Dokumente und Einstellungen\tstoehr\Desktop"
End Sub
weist du jetzt wie gemeint ????? ich weiß allgemein nicht wie man das was im VB steht bearbeitet!!!!!!!