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

Text in UTF8 umwandeln beim Export

Forumthread: Text in UTF8 umwandeln beim Export

Text in UTF8 umwandeln beim Export
04.10.2019 19:58:11
Siegfried
Wer kann mir bitte helfen?
Ich habe in verschiedene Datensätzen Zeichen „CZ-Autokempink Pilák /STP CCA|Ždár nad Sázavou“ wie das „Ž“ z.B., welches beim Export in eine TXT-Datei in UTF8 gewandelt gehört da das Endprogramm welches nur in UTF8 arbeitet dieses und eben auch andere Zeichen nicht richtig anzeigt.
Finde dazu leider kein brauchbares VBA
DANKE für mögliche HILFE.
Gruß Siegfried
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eine Möglichkeit dafür wäre z.B. ...
05.10.2019 09:58:34
neopa
Hallo Siegfried,
... nutze die Funktion SUCHEN und ERSETZEN. Wenn Du diese manuelle Methode automatisieren willst, solltest Du zunächst eine Hilfstabelle aufstellen, wo Du den zu ersetzen Zeichen das Ersatzzeichen gegenüberstellst.
Wenn dass eine überschaubare Anzahl ist, kannst Du auch schon ohne VBA mit Formeln und der Funktion WECHSELN() die Ersetzung in einer zusätzlichen Spalte vornehmen.
Wenn Du weiterhin trotzdem ein VBA-Lösung suchst, stelle den thread offen, in dem Du in den Betreff zusätzlich schreibst: VBA-Lösung gesucht.
Gruß Werner
.. , - ...
Anzeige
AW: Text in UTF8 umwandeln beim Export
05.10.2019 16:24:23
Sigi
Hallo Siegfried,
für neuere Excelversionen gibt es das Fileformat "xlCSVUTF8". Etwa so:
ActiveWorkbook.ActiveSheet.SaveAs Filename:="C:\TEST\UTF8_Dateiname.csv", _
FileFormat:=xlCSVUTF8
Bei älteren Excelversionen könntest du es zumindest mit Unicode versuchen. Evtl. kann dein Endprogramm das auch lesen:
ActiveWorkbook.ActiveSheet.SaveAs Filename:="C:\TEST\Unicode_Dateiname.txt", _
FileFormat:=xlUnicodeText
Einfach mal versuchen.
Gruß
Sigi
Anzeige
AW: Text in UTF8 umwandeln beim Export
05.10.2019 17:09:33
Siegfried
DANKE Siggi,
habe jetzt EXCEL 2010 wird die erste variante wahrscheinlich noch nicht können.
Werde mir mal umgehend die 2 Variante ansehen, die Daten werden in eine SQL.dat importiert und sollten eben in UTF8 Format sein.
Gruß Siegfried
AW: Text in UTF8 umwandeln beim Export
05.10.2019 17:51:41
Sigi
Hallo Siegfried,
bei Excel 2010 geht die erste Variante nicht.
Falls es dir nur um die (optische) Anzeige im Endprodukt geht, könnte man mit Makro die Sonderzeichen durch "normale" lateinische Zeichen ersetzen, damit da keine kryptischen Zeichen erscheinen.
Gruß
Sigi
Anzeige
AW: Text in UTF8 umwandeln beim Export VBA Lösung
05.10.2019 16:25:27
Siegfried
Hallo neopa C,
ich vermute eine VBA Lösung wäre das vernünftigste.
Gruß Siegfried
AW: Text in UTF8 umwandeln beim Export VBA Lösung
07.10.2019 09:31:38
peterk
Hallo
VBA: Mit ADODB.Stream kannst Du UTF8 Dateien erzeugen.
Peter
AW: Text in UTF8 umwandeln beim Export VBA Lösung
08.10.2019 20:12:29
Siegfried
Ich Danke mal für alle Anregungen und Hinweise, werde es aber ganz einfach machen, nachdem der File-Export beendet ist mit dem Editor nochmals öffnen und als UTF-8 dann nochmals speichern.
Schattenseite davon, ich muss ständig dabei anwesend sein, denn ich glaube kaum dem Editor die Einstellung UTF-8 und das Speichern übers VBA anordnen zu können.
Oder im Nachhinein alle Dateien mit dem Editor öffnen und neu als UTF-8 speichern.
Gruß Siegfried
Anzeige
AW: Text in UTF8 umwandeln beim Export VBA Lösung
10.10.2019 23:58:10
Siegfried
Hallo alle Helferleins,
habe natürlich noch weiter gesucht und auch einige Lösungsvorschläge, auch hier im Forum gefunden.
Sind aber leider alle zum scheitern verurteilt da es mit dieser Zeile
Declare Function WideCharToMultiByte Lib "kernel32.dll" (ByVal CodePage As Long, ByVal _
auf einem 64Bit Rechner eben nicht funktioniert.
Konnte aber leider für 64Bit angepasstes nicht finden.
Das mit ADODB ist mir auch untergekommen, aber dafür fehlt mir leider auch irgend ein Modul.
Vielleicht hat da mal jemand eine Ratschlag dazu.
Gruß Siegfried
Anzeige
AW: Text in UTF8 umwandeln beim Export VBA Lösung
11.10.2019 09:50:27
peterk
Hallo
Ich hab Dir einmal eine kleine Beispieldatei mit ADODB gemacht (Dateipfad musst Du im Makro anpassen).
https://www.herber.de/bbs/user/132476.xlsm
Peter
AW: Text in UTF8 umwandeln beim Export VBA Lösung
11.10.2019 20:23:26
Siegfried
Hallo Peter,
DANKE für das Muster-Modul, aber so richtig will es mich noch nicht.
Mein momentanes Problem, ich schreibe aus einer Tabelle einen fertigen Endefile in eine Datei, Datensatz für Datensatz, welcher aber eben bis zur Ausgabe durch verschiedene Einstellungen so oder so aufgebaut sein kann.
Also nicht wie in deinem Muster aus einer Tabelle und Spalten hinaus schreiben sondern wohl auch aus einer Tabelle aber unterschiedlich aus mehreren Spalten zusammengestellt und so muss es dann in der Zieldatei im jeweiligen Datensatz auch drinnen stehen.
Bis hier her habe ich ja keine Probleme momentan.
Hätte nun versucht den in ANSI erstellten File wieder in ein Array einzulesen, klappt auch und dann über dein "objStream.writetext Inhalt, 1" als UTF8 wieder zu exportieren.
Da mag mich aber was nicht, mir fehlt leider die Erfahrung dazu um die richtige Lösung zu finden. Anbei ein Bild des auftretenden Laufzeitfehlers.
Kannst du mir bitte sagen wie ich das lösen könnte, DANKE!!!
Gruß Siegfried
Userbild
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Text in UTF8 umwandeln beim Export in Excel


Schritt-für-Schritt-Anleitung

Um Text in UTF8 umzuwandeln, kannst Du folgende Schritte in Excel ausführen:

  1. Datenvorbereitung: Stelle sicher, dass Deine Daten in der Excel-Tabelle korrekt formatiert sind. Achte besonders auf Sonderzeichen.

  2. Export als CSV:

    • Für neuere Excel-Versionen (ab Excel 2016) nutze den folgenden VBA-Befehl:
      ActiveWorkbook.ActiveSheet.SaveAs Filename:="C:\TEST\UTF8_Dateiname.csv", _
      FileFormat:=xlCSVUTF8
    • Für ältere Excel-Versionen kannst Du diesen Befehl verwenden, um die Datei als Unicode zu speichern:
      ActiveWorkbook.ActiveSheet.SaveAs Filename:="C:\TEST\Unicode_Dateiname.txt", _
      FileFormat:=xlUnicodeText
  3. Überprüfen: Öffne die exportierte Datei in einem Texteditor und stelle sicher, dass die Zeichen korrekt angezeigt werden.


Häufige Fehler und Lösungen

  • Fehler beim Speichern: Wenn Du bei älteren Excel-Versionen den xlCSVUTF8-Format nicht nutzen kannst, probiere den xlUnicodeText-Export.

  • Kryptische Zeichen: Sollten nach dem Export kryptische Zeichen auftreten, kann es hilfreich sein, die Sonderzeichen in Excel durch lateinische Zeichen zu ersetzen. Das geht einfach mit der Funktion WECHSELN().

  • 64-Bit Probleme: Wenn Du auf einem 64-Bit-Rechner arbeitest und Probleme mit WideCharToMultiByte hast, gibt es möglicherweise keine passende Lösung. In diesem Fall ist das Arbeiten mit ADODB.Stream eine gute Alternative.


Alternative Methoden

  1. Manuelle Ersetzung: Verwende die Funktion „Suchen und Ersetzen“ in Excel, um problematische Zeichen vor dem Export zu ersetzen. Dies ist besonders nützlich für eine überschaubare Anzahl an Zeichen.

  2. Editor-Nachbearbeitung: Nachdem Du die Datei gespeichert hast, öffne sie im Editor und speichere sie erneut als UTF-8. So kannst Du sicherstellen, dass die Datei korrekt formatiert ist.

  3. VBA mit ADODB: Nutze den folgenden VBA-Code, um eine UTF-8-Datei zu erstellen:

    Dim objStream As Object
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Type = 2 'Text
    objStream.Charset = "utf-8"
    objStream.Open
    objStream.WriteText "Dein Text hier"
    objStream.SaveToFile "C:\TEST\Dateiname.txt", 2 'Overwrite
    objStream.Close

Praktische Beispiele

  • Beispiel für den Export: Angenommen, Du hast Daten in einer Excel-Tabelle und möchtest diese in eine UTF-8-Tabelle exportieren. Verwende den oben genannten Code für die neueste Excel-Version, um die Datei zu speichern.

  • Beispiel für die Ersetzung von Zeichen: Wenn Du das Zeichen „Ž“ ersetzen möchtest, kannst Du in einer Hilfstabelle die Originalzeichen und ihre Ersetzungen aufstellen und dann mit WECHSELN() die Ersetzungen vornehmen:

    =WECHSELN(A1; "Ž"; "Ersatzzeichen")

Tipps für Profis

  • Hilfstabellen nutzen: Erstelle eine Hilfstabelle mit allen problematischen Zeichen und deren Ersetzungen. Dies macht die Bearbeitung und den Export effizienter.

  • Automatisierung durch VBA: Wenn Du regelmäßig Daten exportierst, kann es sinnvoll sein, ein VBA-Makro zu erstellen, das den gesamten Prozess automatisiert.

  • Testen: Teste die exportierten Dateien in verschiedenen Programmen, um sicherzustellen, dass die Zeichen korrekt dargestellt werden, insbesondere wenn sie in eine SQL-Datenbank importiert werden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine Excel-Datei in UTF-8 exportiert wird? Du kannst den xlCSVUTF8-Format verwenden, wenn Du eine neuere Excel-Version nutzt. Für ältere Versionen ist xlUnicodeText eine gute Alternative.

2. Was tun, wenn ich kryptische Zeichen nach dem Export sehe? Überprüfe, ob alle Zeichen in Excel korrekt dargestellt sind und benutze die Funktion „Suchen und Ersetzen“, um problematische Zeichen zu ersetzen, bevor Du exportierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige