Gelöst csv-File aus Excel mit Semikolon

Korni

Aktives Mitglied
Ich möchte mit VBA-Code eine Liste Daten in ein CSV-File speichern. Beim manuellen Speichern werden die Daten ja mit einem Semikolon getrennt, mit dem VBA-Code werden die Daten leider immer mit Komma getrennt.
Wer weiss eine Lösung, damit die Daten auch mit VBA mit Semikolon ins csv-File geschrieben werden.

Danke für jeden Tipp
Korni
 

pfuschi

Stammgast
Hallo Korni

Hatte mal dasselbe Problem und bin dann im Internet auf eine Lösung gestossen. Hier nun das Makro wie es bei mir momentan im Einsatz ist. Entspricht nicht 1:1 der Lösung von Nils Kaczenski, obwohl ich sein Kommentar dringelassen habe!

'ORIGINAL MAKRO
Sub SaveCSV()
' Speichert den Inhalt eines Arbeitsblatts als CSV-Datei
' mit wählbarem Trennzeichen und Maskierung von Einträgen
' von Nils@Kaczenski.de, 30.1.2003
' Ohne Gewähr!

Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String

strDateiname = Range("A28").Value

Range("A28").Activate
ActiveCell.Value = ""


strTrennzeichen = ";"


Set Bereich = ActiveSheet.UsedRange

Open strDateiname For Output As #1

For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next

Close #1
Set Bereich = Nothing

End Sub


Gruess pfuschi
 

pagefault

Inaktiv
Ot: Csv

csv steht übrigens für comma-separated values
Was ihr schreiben wollt, wäre doch eher ein ssv ;) (semicolon-separated values)

siehe auch: http://tools.ietf.org/html/rfc4180

on topic:
Das oft als "veraltet" geschmähte OpenOffice erlaubt es, beim Speichern im csv-Format die "Filtereinstellungen" zu bearbeiten und ermöglicht so die freie Wahl des Zeichensatzes, des Feld- und des Texttrenners.
Dabei ist die angebotene Auswahl keinesfalls abschliessend - das Zeichen kann entweder direkt überschrieben oder mit einem Rechtsklick auch ein Sonderzeichen eingefügt werden.
 

Thomas Ramel

Stammgast
Grüezi Korni

Leider hast Du die verwendete Excel-Version nicht genannt und auch den Code den Du verwendest für dich beahlten...

Vermutlich verwendest Du aber .SavsAs - hier gibt es einen zusätzlihcen Parameter der Du setzen solltest:

Local:=True


Schau dir auch die Online-Hilfe zur Save-As Methode noch näher an.
 

Korni

Aktives Mitglied
@pagefault
Vielen Dank Pagefault, für deinen super aufschlussreichen Tip. In einem Geschäft kann man nicht einfach so auf die von dir erwähhnte SW umstellen, also muss man sich mit dem begnügen, was zur Verfügung steht.

@pfuschi
Hallo Pfuschi
Habe deinen Vorschlag umgesetzt und es funktioniert prächtig. Nur das CRLF am Schluss des Files muss ich noch entfernen, dann ist das File bereit für die Übertragung.

Herzlichen Dank für Eure schnelle und kompetente Hilfe !

Mit freundlichen Grüssen
Korni
 
Zuletzt bearbeitet von einem Moderator:

Dragonlord

PCtipp-Moderation
Teammitglied
Beiträge

@Korni
Ich habe zwei Beiträge von Dir zusammengefasst. Wie Du jetzt siehst, kann man auch in einem Beitrag mehreren Benutzern danken.

Damit Dein Dank an die richtige Adresse kommt, macht man einfach vor dem Text einen Affenschwanz (@) und dann den Namen des Benutzers.

Ich hoffe Du nimmst mir diese kleine Änderung nicht krumm.

Einen schönen Abend.

lg Roger
 
Oben