Fermer une application Word lancée sous Internet Explorer
franc106
Messages postés2Date d'inscriptionlundi 5 janvier 2004StatutMembreDernière intervention 5 novembre 2004
-
5 nov. 2004 à 12:47
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 2008
-
5 nov. 2004 à 21:01
Bonjour,
Dans le cadre d'une application intranet (java et I.E.), qui permet d'ouvrir des documents Word, Je ne parviens pas dans une macro à conclure par la fermeture du document et fermer Word.
La commande Application.quit ne fonctionne pas . VBA me dit que "cette méthode ou propriété n'est pas disponible car ce document est dans une autre application". Merci beaucoup.
A voir également:
Fermer une application Word lancée sous Internet Explorer
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 5 nov. 2004 à 14:15
tu peux essayer ça,
dans ce code on recherche la fenetre par le texte qui est affiché en haut dans la partie bleu de la fenetre et si elle est trouvé on envoi l'evenement de fermeture (le PostMessage )
je pense que ce qui t'interresse c'est le PostMessage peut etre que la methode pour trouver la fenetre ne te convient pas ( le FindWindow ) dans ce cas va voir mon code
http://www.vbfrance.com/code.aspx?id=27262 ce code liste toutes les fenetres visible sur le bureau windows, ça te donnera sans doute des idées pour identifier la fenetre que tu veux fermer
met ca dans un form et defini la variable MyFenetreName
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
franc106
Messages postés2Date d'inscriptionlundi 5 janvier 2004StatutMembreDernière intervention 5 novembre 2004 5 nov. 2004 à 17:37
Bonsoir,
J'ai appliqué ta solution sans résultat. En fait, j'ai créé une form dans laquelle j'ai copié ton code.
En pas à pas, cette form ,appelée Userform1, s'affiche au milieu de mon document Word et j'en reste là.
Pas de postmessage !
J'ai peut-être zappé quelque chose...
Sinon l'idée de base est bonne. Je vais regarder tes sources à l'adresse indiquée.
Doit-on passer par une form. N'existe t-il pas des instructions liées aux fermetures de fenêtre windows qu'on pourrait inclure dans la macro AutoExit() ?
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 5 nov. 2004 à 21:01
je crois avoir compris tu veux fermer le document qui contient la macro de fermeture de ce meme document ?
est ce que un simple "end" ne marcherait pas pour fermer le document qui contient ta macro ?
dans la solution que je t'ai proposé, si ta macro est incluse dans le document word qui doit etre fermé essaye de faire
PostMessage me.hwnd, WM_CLOSE, 0&, 0&
autrement si tu reessaye tel quel la solution proposé, lorsque, en mode pas a pas, tu as passé la ligne
WinWnd = FindWindow(vbNullString, MyFenetreName)
tu dois avoir WinWnd different de 0 car c'est la valeur de ton Handle(ca veut dire que la fonction a bien trouvé ta fenetre), si elle est egal a 0 c'est que le titre de la fenetre ouverte que tu veux fermer n'est pas le bon ou mal orthographié, ou pas complet.