Brauchen Sie Hilfe?
Web:     Online-Formular
E-Mail:  
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel:       +49(0)151 / 164 55 914

Nutzen Sie für Ihre Anfrage unser Online-Formular oder senden Sie uns eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!. Gerne können Sie aber auch direkt telefonisch Kontakt aufnehmen.

   
     Referenzen
 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   

CSV-Datei mit UniCode Zeichen erzeugen

Dieses Beispiel zeigt, wie CSV-Dateien mit UniCode-Zeichen erzeugt werden können. Im Standardzeichensatz können in ASCII-Dateien, also auch in CSV-Dateien z. B. keine chinesischen Zeichen ausgegeben werden. Mit Hilfe des folgenden VBA-Codes können hingegen auch Zeichen ausserhalb des ASCII-Satzes, also auch Sonderzeichen ect. ausgeben. Mehr über den UniCode-Zeichensatz finden Sie hier bei Wikipedia.de.

Erfassen Sie den folgenden VBA-Code (drei Prozeduren) in einem neuen Code-Modul. Aufgerufen wird der Export über die erste Prozedur "UniCode_CSV_erzeugen". Im Beispiel wird die erzeugte UniCode CSV-Datei im gleichen Verzeichnis abgelegt, wie die Excel-Datei aus der die CSV-Datei erzeugt werden soll.

Die Ausgangsdatei enthält drei Spalten, in der dritten Spalte befinden sich chinesische Zeichen, die in die CSV-Datei übertragen werden sollen, siehe Abbildung:

VBA-Code zur Erzeugung von Unicode CSV-Dateien:

Sub UniCode_CSV_erzeugen()
'** Dimensionierung der Variablen
Dim strFile As Variant

'** Dateiname + Pfad festlegen
'strFile = Application.GetSaveAsFilename("Unicode_CSV-Datei.csv", "CSV-Dateien,*.csv,Alle Dateien,*.*")
strFile = ThisWorkbook.Path & "\Unicode-CSV-Datei.csv"

'** Beenden, wenn kein Dateiname vorhanden ist
If strFile = False Then Exit Sub

'** Speicher-Prozedur aufrufen
Code_CSV_speichern (strFile)
End Sub

 

Sub Code_CSV_speichern(strFile As String)
'** Dimensionierung der Variablen
Dim filenr, a, b, lngAnzSp As Integer
Dim strData As String '** CSV-Datenzeile

'** Vorgaben definieren
filenr = FreeFile
lngAnzSp = ThisWorkbook.Sheets("Daten").Cells.SpecialCells(xlCellTypeLastCell).Column

'** Datei öffnen
Open strFile For Output As #filenr

'** Daten in CSV-Datei schreiben
Print #filenr, Chr(255); Chr(254);
For a = 1 To ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
  strData = ""
  For b = 1 To lngAnzSp - 1
     strData = strData & Cells(a, b).Text & ";"
  Next b
  strData = strData & Cells(a, b).Text & vbCrLf
  Print #filenr, GetUniCodeString(strData);
Next a

'** Datei schließen
Close #filenr
End Sub

 

Private Function GetUniCodeString(s As String) As String
'** Dimensionierung der Variablen
Dim a As Integer  ' Zähler über die einzelnen Bytes des Unicode-Strings

'** Umwanden in Unicode-Zeichen
GetUniCodeString = ""
For a = 1 To LenB(s)
   GetUniCodeString = GetUniCodeString & Chr(AscB(MidB(s, a, 1)))
Next

End Function

Die Beispieldatei können Sie über den folgenden Link herunterladen:

 

   

Relevante Artikel

  • Alle Wörter mit einem Großbuchstaben beginnen lassen

    Mit diesem Makro wird der erste Buchstabe in einer Zelle bereits bei der Eingabe in einen Großbuchstaben umgewandelt.   Damit dieses Makro funktioniert, muss es in den Codecontainer des betreffenden...

  • Laufschrift innerhalb einer zelle

    111005 Mit diesem Code kann innerhalb einer Zelle eine Laufschrift erstellt werden. Die Buchstaben werden der Reihe nach vertauscht.   Sub Rotieren() Dim C As Range Dim i% Set C = ActiveCell For i = 1...

  • Text und Werte in Spalten aufteilen

      Dieses Makro verteilt alle in Spalte A, beginnend ab Zelle A1, eingegebenen Werte (Texte, Zahlen etc.) in einzelne Zellen. So haben Sie Zugriff auf jeden einzelnen Buchstaben oder auch Zahl. Public Sub...

  • Umwandeln von Umlauten

    Das folgende Makro wandelt Umlaute wie z. B. ä in ae um. Fügen Sie dieses Makro einfach in ein Modulblatt ein. Das Makro wandelt alle Umlaute im ausgewählten Zellbereich um. Sub umwandel_ä_in_ae() 'Wandelt ä in ae...

  • Zeichen in String zählen

    Dieser Beitrag zeigt verschiedene Möglichkeiten, um bestimmte Zeichen in einem String zu zählen. So soll beispielsweise im Zelleintrag "Wo steht das geschrieben?" der Buchstabe "e" ermittelt...

   

Excel-Inside auf Facebook Excel-Live News blog Excel-Inside RSS-Feed Twitter Account für Excel-Inside Mail an Excel-Inside 

Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
Unsere Produkte
Office Schulungen VBA, Excel, Access
E-Book Formeln und Funktionen Excel 2013