Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

utf8 export ohne BOM (anpassung)

utf8 export ohne BOM (anpassung)
25.10.2016 19:49:08
rocketfox
ich hatte bis jetzt sehr viel hilfe beim exportieren als utf8 text file
von baschti007
folgendes Script ist dabei zustande gekommen.
soweit funktioniert alles nur muss ich leider später nocheinmal den BOM entfernen ich nutze dazu Notepad++
Meine Frage kann in dem Code schon beim export verhindert werden das BOM gesetzt wird
Sub blaa()
Call SaveUTF8File(ActiveSheet.Name)
End Sub
Sub SaveUTF8File(ByVal WsName As String)
Dim fname As Variant
Dim myfilename As Variant
Dim strOrdner As String
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets(WsName)
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "C:\"
.Title = "Ordnerauswahl"
.ButtonName = "Auswahl..."
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strOrdner = .SelectedItems(1)
If Right(strOrdner, 1)  "\" Then strOrdner = strOrdner & "\"
Else
strOrdner = ""
End If
End With
If strOrdner = "" Then
MsgBox ("Kein Ordner gewählt!")
Else
If MsgBox("Wirklich " & WsName & " TXT Datei erstellen ?", vbYesNo) = vbYes Then
myfilename = WsName & "_" & Format(Date, "DDMMYYYY")
fname = strOrdner & myfilename & ".txt"
If fname = False Then Exit Sub
Call SaveAsUTF8TXT(fname, ws)
End If
End If
End Sub
Sub SaveAsUTF8TXT(ByVal fname As String, ByVal wsa As Worksheet)
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
With wsa
hfile = FreeFile
maxcol = .Cells.SpecialCells(xlCellTypeLastCell).Column
Open fname For Output As #hfile
Print #hfile, Chr(&HEF); Chr(&HBB); Chr(&HBF);
For i = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Row
OneLine = ""
For j = 1 To maxcol - 1
OneLine = OneLine & Replace(.Cells(i, j).Text, Chr(34), Chr(34)) & Chr(9)
Next
OneLine = OneLine & Replace(.Cells(i, j).Text, Chr(34), Chr(34)) & vbCrLf
Print #hfile, GetUTF8String(OneLine);
Next i
Close #hfile
End With
End Sub
' frei nach http://www.
_
vovisoft.com/unicode/UniFunctions.htm#ToUTF8
Private Function GetUTF8String(s As String) As String
Dim i As Integer  ' Zähler über die einzelnen Zeichen des utf16-Strings
Dim utf16 As Long, uc(2) As Byte
GetUTF8String = ""
For i = 1 To Len(s)
utf16 = AscW(Mid(s, i, 1))
If utf16 

gru0 chris

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

Betreff
Datum
Anwender
Anzeige
AW: utf8 export ohne BOM (anpassung)
25.10.2016 20:26:31
Michael
Hi,
wenn ich das richtig sehe, mußt Du nur die Zeile
Print #hfile, Chr(&HEF); Chr(&HBB); Chr(&HBF);

auskommentieren.
Gruß,
M.
AW: utf8 export ohne BOM (anpassung)
26.10.2016 15:53:45
rocketfox
Hallo vielen dank klappt wie gewünscht
gruß chris
sehr schön, danke für die Rückmeldung
26.10.2016 16:09:14
Michael
Gruß,
Michael
Anzeige

88 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige