Mdi word lien ole à l'aide

SeeD2018 Messages postés 16 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 6 octobre 2008 - 14 mars 2006 à 16:40
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 15 mars 2006 à 11:06
j'ai une form appelé "master " qui es un container mdi et je souhaite ouvrir word dans cette form
j'ai utilisé pour cela un lien ole et réaliser divers traitements qui fonctionnent cependant mon document word
ne s'ouvre pas dans ma form mais en dehors.
j'aimerais qu'ils souvrent dedans et je ne sais pas comment faire.

Dim MSWORD
As
New Word.Application



Dim MSDoc
As Word.Document


MSWORD.Documents.Open(
"tartanpion.doc")


MSDoc = MSWORD.Documents(
"tartanpion.doc")


MSDoc.Application.Visible =
true


MSDoc.Application.WindowState = Word.WdWindowState.wdWindowStateMaximize

SeeD2018

1 réponse

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
15 mars 2006 à 11:06
Salut SeeD2018,

1ère Solution (pas la meilleure):

Utilise l'objet WebBrowser de VB, composant Microsoft Internet Controls (%System32%\shdocvw.dll), mets le dans un formulaire fille MDI, et fais lui afficher ton document Word (pas l'application, le document). Selon les réglages de ton poste, il se peut que le document s'affiche à l'extérieur du formulaire, mais tu peux changer ces réglages (qui résident par ailleurs dans la base de registres) en tirant-lachant ton document Word à partir de l'explorateur jusqu'à l'internet explorer (je t'ai pas dit, mais il faut avoir l'IE installé sur ton poste final), et en réponsant à la boîte de dialogue qu'il te soumet. Après quoi, il s'affichera à l'intérieur du WebBrowser de ton formulaire fille MDI. Si cela n'a pas suffit, il te reste à trouver le réglage dans la base de registre.
Notes bien, que cette soluce est dépendante d'un tas de chose dans le contexte d'exécution : la version de ton OS, de ton IE, de ton Word, la nature de tes droits d'exécution, les réglages de ton IE...

2ème Solution :

Dans l'API, la fonction SetParent(hWndChild,hWndNewParent) amène des résultats intéressants, si ce n'est qu'il reste à résoudre des problèmes de positionnement (pas insolvables du tout), en particulier lorsque l'on rentre dans le document Word pour l'éditer.

3ème Solution (mieux ?, en tout cas préconisé par Microsoft) :

Le contrôle OLE de VB
OLE1.CreateEmbed vbNullString, "Excel.Sheet"
OLE1.CreateEmbed vbNullString, "Word.Document"
etc...

vas voir toi-même au http://support.microsoft.com/?kbid=242243

rvblogn
0
Rejoignez-nous