Je désire placer dans un signet word un texte provenant d'un controle RTF.
Le probleme est que que le texte copié dans le document word est le code RTF du genre:
"{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}{\f1\fnil\fcharset2 Symbol;}}
\viewkind4\uc1\pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pninden "
ou bien le texte en brut mais san la mise en forme.
Voila comment je fais actuellement:
var_moncommentaire= textRTF.text
doc_sortie.ActiveDocument.Bookmarks("txt_moncommentaire").Select ' texte associé au plan de carrefour
doc_sortie.Selection.InsertAfter var_moncommentaire
où var_moncommentaire est une variable recevant logiquement mon texte formatté en RTF provenant de mon controle RTF. Bien sur avant j'ai déclaré un 'doc_sortie' qui est un document word que j'ai appélé de cette façon:
' Initialisation de mon doc
Set doc_sortie = CreateObject("Word.Application")
' Ouverture d'un document présent dans le dossier de l'application
doc_sortie.Documents.Open "c:\modele1.doc"
Je souhaiterai savoir si quelqu'un savait comment je peux tranférer du texte provenant de TextRTF (qui est mon controle RTF) avec la mise en forme dans un document word, après un signet de ce document ?!
Un grand merci à tous par avance, car je bloque sur ce point et mon projet est stoppé à cause de ça !
Salut
En effet, InsertAfter ne permet que d'insérer du texte brut, pas les mises en forme.
Il faudrait rechercher :
- en passant par le presse-papier (Clipboard)
- en passant par un fichier rtf (InsertFile ou AddFromFile)
J'ai tenté de l'effectuer sur mon code actuel mais malgré tous les tests, je n'arrivais pas à récupérér le bon contenu du presse papier. Lors de mon parcours de document (pour écrire dedans), le presse papier récuperait d'auters choses et pas moyen avec cette méthode. Je suis donc passé par la seconde solution (passage par un fichier RTF/doc):
J'ai donc extrait ce qu'il y avait dans mon controle RTF:
rtf1.SaveFile "c:\objet_doc.doc"
Puis inséré dans mon doc word le contenu de ce fichier à un signet particulier:
doc_sortie.ActiveDocument.Bookmarks("objet_documentRTF").Select ' titre des données de trafic 2
doc_sortie.Selection.InsertFile "c:\objet_doc.doc"
Et là, ça passe ! bien cool pour l'aide, merci encore!