Excel 2007 & CSV

16/04/2010 - 11:51 von Andreas Mueller | Report spam
Wie kann man bei Excel 2007 eine CSV-Datei erzeugen die UTF-8 Codiert ist und
nicht ANSI ?

Habe beim Speichern folgenden Dateityp verwendet:
CSV (Trennzeichen-getrennt)(*.csv)
 

Lesen sie die antworten

#1 Thomas Ramel
16/04/2010 - 13:46 | Warnen spam
Grüezi Andreas

On 16 Apr., 11:51, Andreas Mueller
wrote:

Wie kann man bei Excel 2007 eine CSV-Datei erzeugen die UTF-8 Codiert ist und
nicht ANSI ?



Das ist auf direktem Weg nicht möglich, Du kannst aber z.B. die
folgende VBA-Prozedur mit der Umwandlungs-Funktion verwenden:

Option Explicit

Sub SaveUniCodeFile()
Dim fname As Variant
fname = Application.GetSaveAsFilename("UniCode.csv", "CSV-
Dateien,*.csv,Alle Dateien,*.*")
If fname = False Then Exit Sub
SaveAsUniCodeCSV (fname)
End Sub

Sub SaveAsUniCodeCSV(fname As String)
Dim hfile As Integer ' Filehandle bzw. Dateinummer
Dim i As Long ' Zàhler über alle Zeilen
Dim j As Integer ' Zàhler über alle Spalten
Dim OneLine As String ' Eine Zeile als String
Dim maxcol As Integer ' max. Anzahl an Spalten

hfile = FreeFile
maxcol = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column

Open fname For Output As #hfile
Print #hfile, Chr(255); Chr(254);
For i = 1 To ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
OneLine = ""
For j = 1 To maxcol - 1
OneLine = OneLine & Cells(i, j).Text & ";"
Next j
OneLine = OneLine & Cells(i, j).Text & vbCrLf
Print #hfile, GetUniCodeString(OneLine);
Next i
Close #hfile
End Sub


Private Function GetUniCodeString(s As String) As String
Dim i As Integer ' Zàhler über die einzelnen Bytes des Unicode-
Strings
GetUniCodeString = ""
For i = 1 To LenB(s)
GetUniCodeString = GetUniCodeString & Chr(AscB(MidB(s, i, 1)))
Next
End Function


Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -

Ähnliche fragen