frankas
Goto Top

Excel-Spalte mit rtf Steuerzeichen umwandeln in "normalen" Text

Ich habe eine Export-Funktion in einem ERP benutzt, um Daten nach Excel zu exportieren. Dabei wurde eine Spalte mit Richtext gefüllt.

Hier 2 Beispiele des Zell-Inhalts in dieser Spalte:

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}\viewkind4\uc1\pard\lang1031\f0\fs18 - zentrieren \par\par}
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}\viewkind4\uc1\pard\lang1031\f0\fs18 - ausrichten \par auf 90 - 100cm \par\par}

Kann man diese Inhalte ohne Steuerzeichen in eine andere Spalte (die ich anhängen würde) übertragen, so dass dort nur noch der `saubere` Text übrigbleibt?
(in den Beispielen also `- zentrieren` bzw `- ausrichten auf 90 - 100cm`)

Falls das nur mit Programmcode möglich ist und jemand diesen an dieser Stelle veröffentlicht, so wäre es
schön, wenn in diesem Code die Variablen durch meine Feld-/Dateinamen ersetzt werden könnten:

Excel-Dateiname = "artikel.xlsx"
Spaltenüberschrift = "Bearbeitung"

Im Einsatz:
Windows 10
Excel 2016

Content-Key: 345798

Url: https://administrator.de/contentid/345798

Printed on: April 23, 2024 at 06:04 o'clock

Member: emeriks
emeriks Aug 09, 2017 updated at 07:03:23 (UTC)
Goto Top
Hi,
das Einfachste wäre wohl ein Makro.

Hier ein Beispiel für eine entsprechende Klasse: https://www.experts-exchange.com/articles/14035/RichText-to-Text-convers ...

Habe diese eben mal getestet und es funktioniert.

E.

Edit: Diese Klasse greift auf WinWord zurück. Dieses muss also auch installiert sein.
Member: colinardo
colinardo Aug 09, 2017 updated at 09:54:08 (UTC)
Goto Top
Servus,
Geht auch ohne installiertes Word in Excel, mit dem Richttext-ActiveX-Control:
Sub RTFToText()
    Set objRTF= CreateObject("RICHTEXT.RichtextCtrl")  
    objRTF.TextRTF = "{\rtf1 Guten Tag! {\i Dies} ist \b{\i ein\i0 formatierter \b0Text}.\par\i0 Das \b0Ende.}"  
    MsgBox objRTF.Text
End Sub
Grüße Uwe
Member: emeriks
emeriks Aug 09, 2017 updated at 09:57:28 (UTC)
Goto Top
Hallo Uwe,
das hatte ich erst bei mir versucht, ging aber nicht, weil er das Control nicht erstellt.
Laut Registry auch nicht auf meinem Computer vorhandene (Win10, Office 2010). Ich gehe also davon aus, dass das auch woanders so sein kann.
Deshalb habe ich eine Alternative herausgesucht.

E.
Member: colinardo
colinardo Aug 09, 2017 at 10:18:15 (UTC)
Goto Top
Das Control lässt sich nur in VBA-Hostumgebungen erstellen in denen Windows-Forms möglich sind, in VBS geht es hier nicht.
Member: emeriks
emeriks Aug 09, 2017 at 10:21:51 (UTC)
Goto Top
Ich habe in VBA getestet. Excel 2010.
Oder was meinst Du?
Member: colinardo
colinardo Aug 09, 2017 updated at 10:39:01 (UTC)
Goto Top
Zitat von @emeriks:
Ich habe in VBA getestet. Excel 2010.
Richtig. Dort geht es, wie auch in Word Access etc, als reines VBS nur eben nicht.
Vorhanden sein muss, wie du schon festgestellt hast, das folgende ActiveX-Control: "Microsoft Rich TextBox Control 6.0 (SP6)" (RICHTX32.OCX / kann ich bei Bedarf zur Verfügung stellen, funktioniert auf W10 auch mit Office 2016 noch einwandfrei wenn man es per regsvr32 registriert)