Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1620to1624
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

Unicode Zeichen verarbeiten

Unicode Zeichen verarbeiten
18.04.2018 17:39:50
Jens
Hallo zusammen,
Ich will Tabellen die Unicode Zeichen enthalten in eine Unicode konforme Textdatei exportieren. Dazu habe ich mir ein VBA Makro geschrieben, dass mehrere Spalten untereinander weg in eine Datei schreiben soll. Da die fremdländischen Buchstaben zunächst als Fragezeichen auftauchten habe ich etwas herum experimentiert.
Zunächst habe ich diesen Ansatz hier probiert:
https://stackoverflow.com/questions/30933062/how-to-save-txt-as-unicode-or-utf-8-in-vba
Der hat aber nicht funktioniert bei mir.
Als nächstes habe ich diesen Ansatz probiert:
https://stackoverflow.com/questions/14261632/how-can-i-create-text-files-with-special-characters-in-their-filenames
Leider ist mein VBA nicht gut genug, dass das Ergebnis korrekt ist.
Hier sind die Daten mit denen ich arbeite. Die Tabelle enthält sehr viele verschiedene Sprachen und damit auch Zeichen aus anderen Sprachen. So wie sie hier auf der Webseite dargestellt sind erscheinen sie auch in meinem Excel file. Jedoch nicht mehr nach dem Export in eine .txt Datei.
https://cloud.google.com/speech-to-text/docs/languages
Hier ist der VBA Code welcher kein richtiges Ergebnis ausschreibt:
Sub Create_New_Text_File_from_all_Columns()
'Variablen definieren
Dim strCRLF As String, strSpecialchars As String
Dim oFSO As Object, oFile As Object
Dim Cr As Long, Cc As Integer, CrE As Long, CcE As Integer
Dim i As Long, n As Long, y As Long
Dim CHeader As String, ExPfad As String, Exfile As String
'Exportpfad mit Backslash am Schluss definieren !!
ExPfad = "C:\Users\Me\"
Cr = 65536
'Schliessen einer evetnuell noch geöffneten Datei
Close #1
'Letzte Spalte bestimmen
If Cells(4, 500) = "" Then
CrE = Cells(4, 500).End(xlToLeft).Column
End If
'1. Öffnen der Datei
'Den Namen und Pfad bitte anpassen
Exfile = ExPfad & Cells(1, 1)
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.CreateTextFile(Exfile, , True)
'With FSO For Output As #1
'Beginn der Export Schleife
For i = 7 To CrE - 1 Step 2
If Cells(Cr, i) = "" Then
Cr = Cells(Cr, i).End(xlUp).Row
End If
'Beginn des Datenexports in die Textdatei
For n = 4 To Cr
'Write oder Print verwenden
strCRLF = StrConv(vbCrLf, vbUnicode)
'strSpecialchars = StrConv(Cells(n, i), vbUnicode)
oFile.Write Cells(n, i) & strCRLF
Next n
Cr = 65536
Next i
'Schliessen der Datei weil Dateiende erreicht wurde
oFile.Close
Set oFile = Nothing
Set oFSO = Nothing
MsgBox "Textdatei wurde in " & ExPfad & " erstellt"
End Sub
Freue mich sehr über Hilfe.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unicode Zeichen verarbeiten
19.04.2018 09:24:13
Robert
Hallo Jens,
ganz habe ich in Deinen Code nicht erkannt, was Du da aus der Exceldatei speichern möchtest. Mit
ActiveWorkbook.SaveAs Filename:= "D:\Test\Mappe1.txt", FileFormat:=xlUnicodeText

kannst Du aber die aktuelle Excel-Tabelle (komplett) als Unicode-Txt-Datei speichern.
Vielleicht hilft es ja.
Gruß
Robert
AW: Unicode Zeichen verarbeiten
19.04.2018 12:11:18
Jens
Hallo Robert,
vielen Dank für die Antwort. Leider passt die Antwort nicht wirklich zu meinem Problem. Dieses ist leider noch größer als ich zunächst gedacht hatte. Insgesamt sollen sich aus dieser Excel Mappe 7518 einzelne Dateien ergeben. Alle mit der richtigen Formatierung (Unicode - mittlerweile denke ich UTF-8 geht vermutlich auch) und jeweils nur ein Teil der Excel Mappe ist in jeder txt Datei gespeichert.
In welcher Datei welche Daten gespeichert werden sollen ist nicht das Problem. Nach meinem jetzigen Wissensstand ist nur die Formatierung ein Problem.
Hat jemand noch eine andere Idee?
Vielen herzlichen Dank für jegliche Hilfe.
Anzeige
AW: Unicode Zeichen verarbeiten
19.04.2018 14:01:13
Robert
Hallo Jens,
ich habe mal etwas recherchiert. Mit Hilfe der Seite
https://stackoverflow.com/questions/2524703/save-text-file-utf-8-encoded-with-vba
kommst Du vielleicht weiter.
Ich habe mal, um Beispieldaten zu haben, die Tabelle auf der von Dir erwähnten Seite https://cloud.google.com/speech-to-text/docs/languages in eine Exceltabelle kopiert. Mit nachstehendem Code fasse ich die erste Spalte dieser Tabelle mit den Unicode-Zeichen zusammen und speichere sie als UTF8-Textdatei. Der Inhalt der Variablen SFileContent kannst Du natürlich ganz nach Bedarf zusammenstellen.
Sub Erstelle_UTF8()
Dim fsT As Object
Set fsT = CreateObject("ADODB.Stream")
Dim sFileName As String
Dim sFileContent As String
Dim i As Integer
sFileName = ThisWorkbook.Path & "\UTF8Txt.txt"
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
sFileContent = sFileContent & vbCrLf & Cells(i, 1)
Next
fsT.Type = 2 'Specify stream type - we want To save text/string data.
fsT.Charset = "utf-8" 'Specify charset For the source text data.
fsT.Open 'Open the stream And write binary data To the object
fsT.WriteText sFileContent '"special characters: äöüß"
fsT.SaveToFile sFileName, 2 'Save binary data To disk
Set fsT = Nothing
End Sub
Gruß
Robert
Anzeige
AW: Unicode Zeichen verarbeiten
19.04.2018 16:32:23
Jens
Hallo Robert,
Vielen herzlichen Dank dafür! Das werde ich jetzt mal ausprobieren.
Bei dir muss irgendetwas anders (besser/richtiger) sein als bei mir im Code wenn deine Version funktioniert.
Ich kann dir hoffentlich schon morgen Rückmeldung geben ob das geklappt hat.
viele Grüße,
Jens
AW: Unicode Zeichen verarbeiten
20.04.2018 13:38:02
Jens
Hallo Robert,
jetzt habe ich es hin bekommen. Vielen herzlichen Dank.
Ich habe einfach dein Makro als Vorlage benutzt und meine benötigte logik hineingearbeitet.
SUPER!
Viele Grüße
Jens
Freut mich, wenn ich helfen konnte. owT
20.04.2018 19:28:16
Robert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige