Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblatt als CVS UTF-8 export

Tabellenblatt als CVS UTF-8 export
24.11.2017 13:47:06
Jürgen
Hallo,
ich hab mal wieder ein Problemchen und hoffe auf hinweise wie ich meinen VBA-Code verändern müsste, um nachfolgend beschriebenes Ergebnis zu erhalten.
Ich versuche mich daran, ein Tabellenblatt in CSV komma getrennt und in UTF-8 abzuspeichern.
Den unten stehenden Code habe ich mal vor einiger Zeit in einem Forum gefunden, der (wie ich finde) Super ist.
Das zu erzeugende File wird im gleichen Ordner abgelegt, es wird aber nochmals der Pfad, Dateiname und Dateiendung abgefragt. Hier kann ich dann die Dateiendung auf *.csv verändern. Ferner wird auch abgefragt welches Trennzeichen man haben möchte und ob die Werte in Anführungszeichen gesetzt werden sollen.
Soweit alles ganz prima, soweit.....
Nun hätte ich gerne zwei Änderungen
Erstens, der Vorgeschlagene Pfad mit dem Dateinamen und der Dateiendung sollte gleich auf *.csv stehen und das Ganze sollte als UTF-8 abgespeichert werden.
Ich wäre sehr Dankbar, wenn mir jemand auf die Sprünge helfen könnte wie zum Ziel meiner Träume käme (ich möchte ja lernen), oder den VBA-Code so verändert, dass es so passt wie ich gerne möchte.
Ich hab schon mal einiges mit dem Makrorekorder ausprobiert, war aber nicht von Erfolg gekrönt.
Hier mein bisheriger Code.
Sub ExportCSV()
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim strMappenpfad As String
Dim blnAnfuehrungszeichen As Boolean
strMappenpfad = ActiveWorkbook.FullName
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.", "CSV-Export", strMappenpfad)
If strDateiname = "" Then Exit Sub
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
If strTrennzeichen = "" Then Exit Sub
If MsgBox("Sollen die Werte in Anführungszeichen exportiert werden?", vbQuestion + vbYesNo, " _
CSV-Export") = vbYes Then
blnAnfuehrungszeichen = True
Else
blnAnfuehrungszeichen = False
End If
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If blnAnfuehrungszeichen = True Then
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
MsgBox "Export erfolgreich. Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt als CSV UTF-8 export
24.11.2017 15:02:38
Jürgen
Sorry, hab mich verschrieben in der Betreffzeile
AW: Tabellenblatt als CSV UTF-8 export
24.11.2017 17:53:01
onur

ActiveWorkbook.SaveAs FileFormat:=Excel.xlCSV
reicht doch
AW: Tabellenblatt als CSV UTF-8 export
24.11.2017 21:16:38
Jürgen
Hallo onur,
vielen lieben Dank,
ich merke gerade, dass ich viel zu Umständlich gedacht habe.
Jürgen
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt als CSV UTF-8 exportieren


Schritt-für-Schritt-Anleitung

Um ein Excel-Tabellenblatt als CSV-Datei im UTF-8-Format zu speichern, befolge diese Schritte:

  1. Öffne Excel: Stelle sicher, dass Du die richtige Excel-Version verwendest. Diese Anleitung bezieht sich auf Excel 2016.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".

  4. VBA-Code eingeben: Kopiere den folgenden Code in das Modul:

    Sub ExportCSV_UTF8()
       Dim Bereich As Object, Zeile As Object, Zelle As Object
       Dim strTemp As String
       Dim strDateiname As String
       Dim strTrennzeichen As String
       Dim blnAnfuehrungszeichen As Boolean
    
       strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.", "CSV-Export")
       If strDateiname = "" Then Exit Sub
       strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
       If strTrennzeichen = "" Then Exit Sub
       If MsgBox("Sollen die Werte in Anführungszeichen exportiert werden?", vbQuestion + vbYesNo, "CSV-Export") = vbYes Then
           blnAnfuehrungszeichen = True
       Else
           blnAnfuehrungszeichen = False
       End If
    
       Set Bereich = ActiveSheet.UsedRange
       Open strDateiname For Output As #1
       For Each Zeile In Bereich.Rows
           For Each Zelle In Zeile.Cells
               If blnAnfuehrungszeichen Then
                   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
       MsgBox "Export erfolgreich. Datei wurde exportiert nach " & strDateiname
    End Sub
  5. Code ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle ExportCSV_UTF8 und klicke auf „Ausführen“.

  6. CSV-Datei speichern: Gib den gewünschten Dateinamen und das Trennzeichen ein. Du kannst auch entscheiden, ob die Werte in Anführungszeichen stehen sollen.


Häufige Fehler und Lösungen

  • Problem: Die Datei wird nicht im UTF-8-Format gespeichert.

    • Lösung: Stelle sicher, dass Du den richtigen VBA-Code verwendest und die Datei mit der Endung .csv speicherst.
  • Problem: Anführungszeichen werden nicht richtig gesetzt.

    • Lösung: Überprüfe die Eingabeaufforderung, ob Du die Anführungszeichen aktiviert hast.

Alternative Methoden

Wenn VBA nicht die bevorzugte Methode ist, kannst Du auch die integrierte Funktion in Excel verwenden:

  1. Datei speichern unter: Gehe zu „Datei“ > „Speichern unter“.
  2. Dateiformat auswählen: Wähle „CSV UTF-8 (Comma delimited) (*.csv)“ aus der Liste der Dateiformate.
  3. Speichern: Gib den Dateinamen ein und klicke auf „Speichern“.

Praktische Beispiele

Ein Beispiel für den VBA-Code, der auch Anführungszeichen um die Zelleninhalte setzt:

If blnAnfuehrungszeichen Then
    strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
End If

Wenn Du die CSV-Datei mit Kommas und Anführungszeichen exportieren möchtest, setze blnAnfuehrungszeichen auf True.


Tipps für Profis

  • Verwendung von UTF-8: Achte darauf, dass die Datei im UTF-8-Format gespeichert wird, um Komplikationen mit Sonderzeichen zu vermeiden.
  • Automatisierung: Du kannst den Export-Prozess durch Makros automatisieren, um Zeit zu sparen, besonders bei großen Datenmengen.
  • Datenvorbereitung: Bereite Deine Daten vor dem Export vor, um sicherzustellen, dass sie im richtigen Format vorliegen.

FAQ: Häufige Fragen

1. Wie speichere ich eine CSV-Datei im UTF-8-Format?
Verwende die Funktion „Speichern unter“ und wähle „CSV UTF-8“ als Format. Alternativ kannst Du den oben angegebenen VBA-Code verwenden.

2. Was muss ich tun, wenn meine CSV-Datei nicht richtig geöffnet wird?
Überprüfe, ob die Datei tatsächlich im UTF-8-Format gespeichert wurde. Manchmal kann es helfen, die Datei mit einem Texteditor zu öffnen und das Encoding zu überprüfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige