Semikolon anstelle Komma CSV

Bild

Betrifft: Semikolon anstelle Komma CSV
von: Larissa Apfel
Geschrieben am: 21.04.2015 08:50:13

Hallo liebe Community,
ich habe folgendes kleines Problem:
Ich exportiere eine CSV Datei im *txt Format und anschließend sind die Spalten mit einem Komma getrennt. Ich benötige aber ein Semikolon. Außerdem möchte ich, dass in der obersten Spalte neben der letzten gefüllten Spalte eine "leere" steht, damit weitere Semikolon hinzugefügt werden.
So sieht es bisher aus:
Dies, Ist, ein,
Test, 1,
Test, 2,
....
Das ist das Ziel:
Dies; Ist; ein;;;
Test;1;
Test;2;
Hier ist meine Code-Stelle:
ActiveWorkbook.SaveAs Filename:="Z:\foo\foo\foo.txt", _
FileFormat:=xlCSVMSDOS, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=True

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Wolfgang
Geschrieben am: 21.04.2015 09:07:13
Moin Moin,
1.) ergänze den Speicherbefehl um "Local:=True", dann wird "in Deutsch" gespeichert - normal speichert VBA "in Englisch", so dass der Delimiter ein "," ist.
2.) Wenn Du in Zeile 1 in die leeren Spalten ein Hochkomma "'" einträgst, ist die Spalte im Blatt nicht leer, im Export aber schon. Bei mir kommt dann das raus:

Dies;ist;ein;;;
Test;1;;;;
Test;1;;;;

(Das ist aus der Urzeit der Tabellenkalkulationen, als man mit vorangestelltem ' / " / ^ die Zellausrichtung links / rechts / zentriert festlegen konnte.)
Hoffe, das hilft!
Gruß, Wolfgang

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Larissa Apfel
Geschrieben am: 21.04.2015 09:15:08
Erstmal vielen Dank für deine Antwort.
Mit "true" habe ich bereits getestet, sobald ich die csv-Datei als txt abspeichere verschwinden die Semikolon und werden durch Kommas ersetzt. Mit dem " ' " ist eine super Idee, aber leider werden dann in allen weiteren Zeilen (ab 2) die Semikolon eingefügt.

Test;1;;;;
Test;1;;;;
So Soll es aber aussehen..
Dies; Ist; ein;;;
Test;1;
Test;2;


Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Daniel
Geschrieben am: 21.04.2015 09:31:53
Hi
Wenn du Semikolons als Trennzeichen willst, musst du als CSV mit Local:=True speichern.
Txt ist dann wieder ein anderes Format mit anderen Trennzeichen.
Auch dein zweiter Wunsch ist nicht so leicht erfüllbar, weil Excel immer die UsedRange, also den genutzten Zellbereich, speichert und dieser ist immer rechteckig mit gleich viel Zellen in jeder Zeile, daher hat auch im CSV jede Zeile die gleiche Anzahl Semikolons.
Der Weg zur Erfüllung deiner Wünsche ist folgender:
Fasse auf einem zweiten Tabellenblatt die Texte einer Zeile in Spalte A zusammen (mit Verketten oder &) und speichere dann dieses Blatt als CSV oder Txt.
Hierbei bestimmst du das Trennzeichen und seine Anzahl, denn für Excel steht der Ganze Text in einer Spalte und es fügt keine eigenen Trennzeichen ein.
Gruß Daniel

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Larissa Apfel
Geschrieben am: 21.04.2015 09:51:13
Das mit der Verkettung verstehe ich nicht genau..
Ich habe in einer neuen Mappe in A1 folgende Formel geschrieben =Import!A1&Import!B1&Import!C&1
Dann steht da nun "DiesIstein".. Mir fehlen aber die Semikolon und die kann ich bei der Verkettung mit & nicht einfügen..

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Daniel
Geschrieben am: 21.04.2015 10:00:47
Das Trennzeichen fügst du genauso ein wie die Texte:
=Import!A1&";"&Import!B1&";"& ...
Gruß Daniel

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Larissa Apfel
Geschrieben am: 21.04.2015 10:25:46
Vielen Dank! Ein erster (kleiner) Schritt ist getan. Es sieht jetzt aber folgendermaßen aus:

"Dies;ist;ein;;;"
Test         1
Test         2
Es fehlen jetzt die Semikolon bei den Einträgen und die Leerzeichen irritieren.. Und die Anführungszeichen müssen natürlich weg.

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Daniel
Geschrieben am: 21.04.2015 10:52:51
1. Was sieht so aus?
2. wie sehen deine Formeln aus?
3. wie speicherst du?
Gruß Daniel

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Larissa Apfel
Geschrieben am: 21.04.2015 10:55:33
1. Meine txt-Datei
2. Meine Formel sieht folgendermaßen aus:

=Tabelle1!A1&";"&Tabelle1!B1&";"&Tabelle1!C1&";"&";"&";"
3. Ich speicher die csv-Datei anschließend mit "Speicher unter".. (Text MSDOS).

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Daniel
Geschrieben am: 21.04.2015 12:06:45
Hi
speichere mal als .prn Formatierter Text (Leerzeichen getrennt)
das erzeugt bei mir ein einfaches Textfile ohne die Anführungszeichen um den Text
den Dateinamen kannst du ja nacher immer noch auf CSV oder TXT oder sonstwas ändern.
Gruß Daneil

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Larissa Apfel
Geschrieben am: 21.04.2015 12:17:06
Okay super damit gehen die Anführungszeichen weg. Problem ist, dass er die Leerzeichen zwischen den Einträgen noch hat und die Semikolon Trennung ab Zeile 2 fehlt. Mist, ich komme einfach nicht auf die Lösung. :(

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Daniel
Geschrieben am: 21.04.2015 12:21:27
ich kenne jetzt nicht deine Formeln für die Zeile 2 und die folgenden Zeilen.
leerzeichen zwischen den Einträgen sollten nur vorkommen, wenn du mehrer Spalten hast, dann werden im PRN-Format die Texte in den Spalten mit Leerzeichen aufgefüllt, so dass jede Spalte die selbe anzahl von Zeichen hat, so das gleiche Spalten im Text auch untereinander stehen.
Da du aber, wenn du meinen Anweisungen gefolgt bist, nur eine Spalte hast, sollte das nicht vorkommen.
Gruß Daniel

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Larissa Apfel
Geschrieben am: 21.04.2015 12:30:42
In Spalte A1 steht jetzt die ersten drei Spalten (A1, B1 und C1). Ab Zeile 2 (!) stehen Einträge in A2:A111 und in B2:B111.

Bild

Betrifft: siehe meine Lsg. owT
von: Rudi Maintaire
Geschrieben am: 21.04.2015 12:33:44


Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Daniel
Geschrieben am: 21.04.2015 12:45:09
dann hast du nicht verstanden, was ich dir erkärt habe.
es müssen alle Texte in Spalte A stehen!
Wenn du mehrer Spalten hast, greifen wieder die Excelautomatismen für die Vergabe der Spaltentrenner.
deswegen müssen alle Texte in Spalte A stehen! damit du die Spaltentrenner nach deinen eigenen Regeln vergeben kannst
daher muss ab Zeile 2 bis Zeile 111 dann die die Formel in Spalte A: =Tabelle1!A2&";"&Tabelle1!B2
wie schon erwähnt: du musst pro Zeile alle Texte in der Spalte A zusammenfassen und alle folgenden Spalten ab Spalte B müssen leer sein.
Wenn das für dich zu schwer zu verstehen ist, solltest du dir mal das Makro von Rudi anschauen, vielleicht kommst du damit besser klar.
Gruß Daniel

Bild

Betrifft: AW: Semikolon anstelle Komma CSV
von: Rudi Maintaire
Geschrieben am: 21.04.2015 11:03:51
Hallo,

Sub aaaa()
  Dim strOut As String, i As Long, arrTmp
  i = 1
  arrTmp = Range(Cells(i, 1), Cells(i, Columns.Count).End(xlToLeft).Offset(, 3))
  arrTmp = WorksheetFunction.Transpose(arrTmp)
  arrTmp = WorksheetFunction.Transpose(arrTmp)
  strOut = Join(arrTmp, ";")
  For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    arrTmp = Range(Cells(i, 1), Cells(i, Columns.Count).End(xlToLeft).Offset(, 1))
    arrTmp = WorksheetFunction.Transpose(arrTmp)
    arrTmp = WorksheetFunction.Transpose(arrTmp)
    strOut = strOut & vbCrLf & Join(arrTmp, ";")
  Next
  Open "c:\temp\output.txt" For Output As #1
  Print #1, strOut
  Close #1
End Sub
Gruß
Rudi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Semikolon anstelle Komma CSV"