nein, bei mir werden nicht alle gezeigt. Siehe mein EDIT. Ich habe nur gesehen, dass UTF-Zeichen, die nicht Bestandteil des ASCII/ANSI Bereichs sind, angezeigt werden. Habe dann später das Problem mit den fehlenden Texten gesehen und den Beitrag editiert.
ja, musst Du wohl oder übel kürzen. Dort findest Du z.B. eine UTF8-Tabelle, könntest nach den "doppelt langen" Zeichen schauen und damit eine Längenberechnung durchführen.
Ich habe im Anhang mal nur die deutschen Umlaute gezählt, das ergibt teilweise schon ca. 200 zusätzliche Zeichen. Bei anderen mit Strichen, wellen, Häkchen und was auch immer dürften es einige mehr sein.
... eins hätte ich noch. Wenn Du das mit einem Makro lösen darfst, dann z.B. für Dein Beispiel damit. Das könnte man variabel gestalten, z.B. die 18 anhand der letzten gefüllten Zeile usw.
Code:
Sub SaveStringAsUTF8() Dim arrData, arrString(1 To 18), iCnt1%, strData$, stream As Object 'Schleife ueber 18 Zeilen For iCnt1 = 1 To 18 'Spalten zu Array zusammenfassen arrData = Array(Cells(iCnt1, 1).Value, Cells(iCnt1, 2).Value, Cells(iCnt1, 3).Value) 'Array mit 3B (Zeichen 59) zusammenfuegen arrString(iCnt1) = Join(arrData, Chr(59)) 'Ende Schleife ueber 18 Zeilen Next 'Zeilen mit 0D0A (vbCrLf)zusammenfuegen strData = Join(arrString, vbCrLf) 'ADODB - Stream setzen Set stream = CreateObject("ADODB.Stream") With stream .Type = 2 'Streamtyp Text .Charset = "utf-8" 'UTF-8 .Open 'Datei oeffnen .WriteText strData 'Text zum schreiben ' Speichern, 2 fuer ueberschreiben, falls vorhanden .SaveToFile "C:\test\test_utf8_vba.txt", 2 .Close 'Datei schleissen End With End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
21.02.2025, 11:35 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2025, 11:37 von snb.)
M.m.n hast du eien suboptimale Struktur für die Daten. Du solltest die Struktur anpassen un nicht Code verwenden zum beheben dieser Struktur.
Excel ist nicht 'designed' / geeeignet zum Speichern von viele Daten in einer Zelle. Ein Arbeitsblatt enthält genug Zellen um Daten ordentlicht zu Speichern. Schau mal