Bonjour,
J'ai une application vb qui me permet d'aller ouvrir des documents word dans un repertoire. Comme indiqué ici dans la Faq, je gère l'ouverture et la fermeture de mes documents en créant un objet "Word.Application" :
Set objWord(0) = CreateObject("Word.Application")
et autant de documents que necessaire (je peux par exemple ouvrir 4 fichiers word si je veux):
Set objDocumentW(K) = objWord(0).Documents.Open(.FileName)
C'est ici mon compteur K qui me permet de connaitre le nombre de documents ouvert.
Et pour la fermeture je procède ainsi:
A travers cette petite appli, j'ouvre donc et ferme les documents word que je veux. Je peux controler dans le gestionnaire des tâches Windows que j'ai bien un processus Word (WINWORD.EXE)qui est crée et autant d'application word créee qu'il y a de documents ouverts. Bien ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 For i = 1 To K objDocumentW(i).Close True Set objDocumentW(i) = Nothing Next objWord(0).Quit 'Fermeture de l'instance de Word Set objWord(0) = Nothing
Tout cela fonctionne bien sauf ... si l'utilisateur decide d'ouvrir un document word autrement qu'en passant par l'application vb. Car alors, celui ci n'est pas "comptabilisé" dans mon appli ! un processus word ayant déjà été crée à travers mon appli vb, il ne va pas en crée un second.
Ok jusque là ca marche mais .... lorsque je ferme l'appli et bien tout naturellement, je vais donc fermer les documents ouvert mais aussi LE processus Word. Et donc tous les documents sont alors fermés Y COMPRIS ceux qui auraient été ouvert en dehors de l'application. ..... et je voudrais que ceux-là restes ouvert... Comment pourrais-je faire pour gérer le cas ou l'utilisateur ouvre des doc en dehors de l'appli et alors "associer" ces doc à un autre processus Word ?
Pas très simple comme colle et là je sèche. Alors si vous avez des idées, n'hesitez pas. Par avance merci.
Partager