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.
On 6 Apr., 10:07, Maria Scillano <Maria_Scill...@yahoo.com> wrote:
>
> 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.
> 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 -
http://www.erlandsendata.no/english/index.php?d=envbatextexportcsv
Viele Grüße,
Bernd
> 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.
Danke, jedoch diese Lösung ist mir zu kompliziert. Gibt es nicht etwas
einfacheres, für einen ganz normalen User !?
Danke. Suche jedoch eher eine einfache Lösung, weil ich eine ganz normale
Benutzerin bin.
On 6 Apr., 11:22, Maria Scillano <Maria_Scill...@yahoo.com> wrote:
>
> > 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.
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
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
> 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.