Insérer en VBA un doc Word dans un UserForm

Archeolabo Messages postés 8 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 28 novembre 2008 - 28 nov. 2008 à 07:46
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 - 28 nov. 2008 à 14:09
Bonjour,

J'ai besoin d'afficher du texte formaté dans un UserForm VBA sous Word

Faute de pouvoir utiliser un RichTextBox (ce qui ne semble pas possible) il serait peut-être possible de poser un document word dans le UserForm et de lui passer du texte formaté ?

Oui/Non ?
Si oui, comment ?
Sinon quelle autre idée ?

Merci d'avance à tous

6 réponses

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
28 nov. 2008 à 08:37
Bonjour
la seule possibilité c'est de convertir un Word en RTF et de l'afficher dans un RichTextBox. 
A tout ceux qui ne peuvent pas se passer des formats propriétaire point de salut.
0
Archeolabo Messages postés 8 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 28 novembre 2008
28 nov. 2008 à 08:54
Sauf qu'en VBA (sauf erreur de ma part) on ne PEUT pas insérer un RichTextBox dans un UserForm.

(ou alors y'a une astuce que je n'ai pas trouvée et ... dont je serais preneur !)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 nov. 2008 à 08:59
Salut,
IL semblerait qu'en passant par un USERCONTROL (contenant le RichTextBox) cela puisse etre contourné => ICI

@+: Ju£i€n
Pensez: Réponse acceptée
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
28 nov. 2008 à 12:46
Y a quelque chose qui me chagrine au plus haut point, si on est en VBA c'est qu'on a Word ou Excel d'installer sur la même machine?
Alors pourquoi un RichTextBox dans une form?
Une session word ne suffit t'elle pas?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Archeolabo Messages postés 8 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 28 novembre 2008
28 nov. 2008 à 13:06
Loulou, parce le UserForm sert à saisir des données et qu'il est souhaitable que l'utilisateur ait sous les yeux certains éléments du document en cours (péchés à droite ou à gauche et synthétisés dans le UserForm).

Ceci dit, je ne sais pas ouvrir une session word dans un form et je suis preneur de cette solution (avec si possible la combine pour planquer une partie des menus et des raccourcis clavier) !
Le mieux pour moi serait d'avoir non pas une session word mais un objet document word juste affiché.
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
28 nov. 2008 à 14:09
Donc, je ne reviens pas sur ce que j'ai dit dans mes deux réponses.


J'ai déjà utilisé la solution de jrivet à savoir riched20.dll dont une solution est disponible sur le site vbaccelerator mais je constate qu'avec Windows XP SP cela ne fonctionne plus : alors s'il existe un projet qui tourne en VBA et/ou VB6 je suis aussi preneur tout en sachant que cela n'a pas d'avenir.


Ensuite, il peut appartenir à l'utilisateur de lire le document en l'ouvrant avant d'appeler ta form. C'est beaucoup moins dansgereux que de chercher une solution non fiable.


Il m'est arrivé le besoin d'ouvrir les documents de manière très superficielle pour indiquer dans une form qui me permettait de saisir les informations de classement documentaire et parfois au lieu d'ouvrir le document j'utilisais dans la boite "Fichier/Ouvrir " de Word , le mode "aperçu" à droite du champ "Regarder dans" sous Word 2003.


Ouvrir une session Word
Sans faire de copier/coller de mémoire désolé si cela ne fonctionne pas


Dim oWord
Dim oDoc
Set oWord = CreateObject("Application.Word")
Set oDoc= oWord.Documents.Open("c:\toto.doc")
Dim oParagraph
For each oParagraph in oDoc.Paragraphs
   dim oRange
   set oRange= oParagraph.Text
   ... Traiter le contenu de chaque paragraphe de mon document
Next
Set oDoc=Nothing
Set oWrd=Nothing
0
Rejoignez-nous