Discussion:
Datei als CSV exportieren - Komma statt Semikolon als Trennzeichen
(zu alt für eine Antwort)
Maria Scillano
2009-04-06 08:07:54 UTC
Permalink
Hallo.

Ich möchte im Excel eine Datei als CSV exportieren, jedoch wird mir immer
wieder Semikolon zwischen den Spalten ausgegeben, obwohl ich gerne
stattdessen ein Komma gerne hätte.
Wo muss ich es einstellen?

Ich habe bisher unter Regionale Optionen in der Systemsteuerung geändert,
das hat aber keine Abhilfe gebracht.

Ich möchte auch nicht die erstellte Datei nachbearbeiten, es soll schon mit
Komma statt Semikolon als Trennzeichen rauskommen.
t***@gmail.com
2009-04-06 08:50:20 UTC
Permalink
Grüezi Maria
Post by Maria Scillano
Ich möchte im Excel eine Datei als CSV exportieren, jedoch wird mir immer
wieder Semikolon zwischen den Spalten ausgegeben, obwohl ich gerne
stattdessen ein Komma gerne hätte.
Wo muss ich es einstellen?
Mit welchen Sprach-Einstellungen im Betriebssystem arbeitest Du denn?

Excel richtet sich stark nach diesen Einstellungen und das ist auch
gut so.
Post by Maria Scillano
Ich habe bisher unter Regionale Optionen in der Systemsteuerung geändert,
das hat aber keine Abhilfe gebracht.
Ich möchte auch nicht die erstellte Datei nachbearbeiten, es soll schon mit
Komma statt Semikolon als Trennzeichen rauskommen.
Wenn Du abweichende Ausgaben in die .CSV willst, dann stellen im BS
die Sprache temporär auf Englsich(USA) um und speichre deine Mappe.

Oder aber Du speicherst das Tabellenblatt per VBA, das ist dann
standardmässig in der VBA 'Original-Sprache' und liefert das Komma als
Spaltentrenner.


Sub SaveCSV_a()
Dim a As Variant
Dim b() As String
Dim D() As String
Dim Z As Long
Dim S As Byte
Dim R As Long
Dim C As Byte

'Speicherpfad eintragen
Const Path As String = "C:\Test\"
'Dateiname eintragen
Const filename As String = "Test2"
'Dateiendung anpassen (.txt, .csv oder andere)
Const Extension As String = ".TXT"
'Trennzeichen anpassen (Semikolon, Komma oder andere)
Const Separator As String = ";"
'Texerkennungszeichen anpassen (kann meist so bleiben)
Const Wrapper As String = """"

'Zu speichernden Bereich eintragen z.B:
'Worksheet("DeinTabellenblatt").UsedRange
'Worksheet("DeinTabellenblatt").Range("A1:B10")

a = ActiveSheet.UsedRange

If Not IsEmpty(a) Then
Z = UBound(a, 1)
S = UBound(a, 2)
ReDim b(S - 1)
ReDim D(Z - 1)
For R = 1 To Z
For C = 1 To S
If InStr(1, a(R, C), Separator) > 0 Then
'Rows whith cells including the Separator
'put in Wrapper
b(C - 1) = Wrapper & a(R, C) & Wrapper
Else
b(C - 1) = a(R, C)
End If
Next C
D(R - 1) = Join(b(), Separator)
Next R
Open Path & filename & Extension For Output As #1
Print #1, Join(D(), vbCrLf)
Close #1
End If
End Sub


--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Maria Scillano
2009-04-06 09:22:36 UTC
Permalink
Post by t***@gmail.com
Wenn Du abweichende Ausgaben in die .CSV willst, dann stellen im BS
die Sprache temporär auf Englsich(USA) um und speichre deine Mappe.
Leider hat es keine Abhilfe gebracht.
Post by t***@gmail.com
Oder aber Du speicherst das Tabellenblatt per VBA, das ist dann
standardmässig in der VBA 'Original-Sprache' und liefert das Komma als
Spaltentrenner.
Sub SaveCSV_a()
Dim a As Variant
Dim b() As String
Dim D() As String
Dim Z As Long
Dim S As Byte
Dim R As Long
Dim C As Byte
'Speicherpfad eintragen
Const Path As String = "C:\Test\"
'Dateiname eintragen
Const filename As String = "Test2"
'Dateiendung anpassen (.txt, .csv oder andere)
Const Extension As String = ".TXT"
'Trennzeichen anpassen (Semikolon, Komma oder andere)
Const Separator As String = ";"
'Texerkennungszeichen anpassen (kann meist so bleiben)
Const Wrapper As String = """"
'Worksheet("DeinTabellenblatt").UsedRange
'Worksheet("DeinTabellenblatt").Range("A1:B10")
a = ActiveSheet.UsedRange
If Not IsEmpty(a) Then
Z = UBound(a, 1)
S = UBound(a, 2)
ReDim b(S - 1)
ReDim D(Z - 1)
For R = 1 To Z
For C = 1 To S
If InStr(1, a(R, C), Separator) > 0 Then
'Rows whith cells including the Separator
'put in Wrapper
b(C - 1) = Wrapper & a(R, C) & Wrapper
Else
b(C - 1) = a(R, C)
End If
Next C
D(R - 1) = Join(b(), Separator)
Next R
Open Path & filename & Extension For Output As #1
Print #1, Join(D(), vbCrLf)
Close #1
End If
End Sub
Danke, jedoch diese Lösung ist mir zu kompliziert. Gibt es nicht etwas
einfacheres, für einen ganz normalen User !?
t***@gmail.com
2009-04-06 09:47:31 UTC
Permalink
Grüezi Maria
Post by Maria Scillano
Post by t***@gmail.com
Wenn Du abweichende Ausgaben in die .CSV willst, dann stellen im BS
die Sprache temporär auf Englsich(USA) um und speichre deine Mappe.
Leider hat es keine Abhilfe gebracht.
Hmmm, das kann ich mir nun kaum vorstellen.

Wie genau sieht deine Mappe denn aus?
Welche Inhalte und Formate hat sie?

Welche Sprachen hast Du installiert - BS und Office?

Welche Einstellungen hast Du in den Excel-Optionen unter
'International' vorgenommen?

Wie genau bist Du vorgegangen beim Speichern der .CSV-Datei?


Die VBA-Routine ist nicht sonderlich schwer, einmal eingepflegt kannst
Du sie beliebig aufrufen und verwenden.

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Andreas Killer
2009-04-07 07:07:04 UTC
Permalink
Post by Maria Scillano
Danke, jedoch diese Lösung ist mir zu kompliziert. Gibt es nicht etwas
einfacheres, für einen ganz normalen User !?- Zitierten Text ausblenden -
Naja, das läßt sich recht leicht zum Add-In umbauen, da kannst Du dann
draufklicken.

Zuerst hier das Add-In runterladen:
http://rapidshare.de/files/46579487/CSV.xla.html

Dann dieses Installieren, wie's geht liest Du hier:
http://www.online-excel.de/excel/singsel.php?f=114

Und dann solltest Du in Deinem Menü unter Datei einen Eintrag
"Speichern als CSV" finden.

Funktionert alles nach Deiner Zufriedenheit?

Andreas.

Bernd P
2009-04-06 09:07:59 UTC
Permalink
Hallo,

http://www.erlandsendata.no/english/index.php?d=envbatextexportcsv

Viele Grüße,
Bernd
Maria Scillano
2009-04-06 09:23:18 UTC
Permalink
Post by Bernd P
Hallo,
http://www.erlandsendata.no/english/index.php?d=envbatextexportcsv
Viele Grüße,
Bernd
Danke. Suche jedoch eher eine einfache Lösung, weil ich eine ganz normale
Benutzerin bin.
Carlos Naplos
2009-04-06 18:32:47 UTC
Permalink
Post by Maria Scillano
Hallo.
Ich möchte im Excel eine Datei als CSV exportieren, jedoch wird mir immer
wieder Semikolon zwischen den Spalten ausgegeben, obwohl ich gerne
stattdessen ein Komma gerne hätte.
Hallo Maria

Öffne Deine csv-Datei mit einem Texteditor, der "Suchen und ersetzen" kann, und lasse alle Semikolons durch Kommas ersetzten.

Wenn Du Excel hast, hast Du sicher auch Word. "Suchen und ersetzen" kannst Du in Word mit Strg+h aufrufen. Bestätige beim Speichern die Warnungen, dass Formatierungen verloren gehen!

Gruß
Carlos
unknown
2009-04-06 21:49:36 UTC
Permalink
Hallo Carlos,
oder er bemüht VBA. Eine mögliche Routine wäre:

Sub PrintCSV()
Dim rngBereich As Range
Dim rngZeile As Range
Dim rngZelle As Range
Dim strTemp As String
'passe die folgenden Konstanten an
Const strPfad As String = "LW:\DeinPfad"
Const strDateiname As String = "Dateiname"
Const strExtension As String = ".CSV"
Const strTrennzeichen As String = ","

Set rngBereich = ActiveSheet.UsedRange
Open strPfad & strDateiname & strExtension For Output As #1

For Each rngZeile In rngBereich.Rows
For Each rngZelle In rngZeile.Cells
If InStr(1, rngZelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Semikolon beinhalten,
'in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(rngZelle.Text) & _
"""" & strTrennzeichen
Else
strTemp = strTemp & CStr(rngZelle.Text) & _
strTrennzeichen
End If
Next
Print #1, strTemp
strTemp = ""
Next

Close #1
Set rngBereich = Nothing
End Sub


Mit freundlichem Gruß aus der Rattenfängerstadt Hameln
Frank Arendt-Theilen

--
(ehem. MVP für Excel)
Website: www.xl-faq.de
Loading...