Controle RTF vers word

Résolu
stephpointh
Messages postés
2
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
5 juin 2006
- 30 mai 2006 à 15:05
stephpointh
Messages postés
2
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
5 juin 2006
- 5 juin 2006 à 14:51
Bonjour,

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  !

stephpointh

3 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
30 mai 2006 à 18:48
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)
3
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
30 mai 2006 à 18:51
Pour le presse-papier :
Commence l'enregistrement d'une macro
Fais les manips à la main
Stoppe l'enregistrement et regarde quelles lignes utiliser
0
stephpointh
Messages postés
2
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
5 juin 2006

5 juin 2006 à 14:51
Merci pour la réponse précise!

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!

stephpointh
0