Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

CSV in Text datei umwandeln





Frage

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?????? [*][sup][i] *Threadedit* 20:15:28 Admininfo: bitte vermeide Mehrfachanfragen in verschiedenen, bzw. gleichen Gruppen. Die Datenbank und User werden es dir danken. Siehe [u][url=https://supportnet.de/faqsthread/840]FAQ 2.[/url][/u][/i][/sup]

Antwort 1 von Marie

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

ö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

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

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

danke schön, hat funktioniert

Antwort 6 von Beatlefield

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

Ja suchen und ersetzen geht auch in einer Textdatei, probiers einfach mal.

gruß marie

Antwort 8 von Beatlefield

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

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

  • Admininfo: *Threadedit* Siehe FAQ 5.

  • Antwort 11 von Marie

    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

    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

    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

    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

    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

    Vb

    Gruß marie

    Antwort 17 von Beatlefield

    danke schön, marie

    Antwort 18 von Beatlefield

    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

    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

    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!!!!!!!

    Antwort 21 von coros

    Hallo ,

    dann sollte das Makro wie folgt aussehen:

    Sub Test()
    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
    
    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


    Ob allerdings alles so abgearbeitet wird, wie Du Dir das denkst, also in der richtigen Reihenfolge, kann ich nicht beurteilen, da ich keine Datei zum Testen habe. Aber das sollte so funktionieren.

    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.