Fermeture de fenêtre fille MDI

Signaler
Messages postés
9
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
14 février 2008
-
Messages postés
9
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
14 février 2008
-
 Bonjour,

J'aimerais à partir d'une application VB6 fermer une fenêtre fille d'un processus Excel. En effet on peut lancer plusieurs fenêtres filles (WorkBook) dans une application Excel. Je souhaite donc en fermer une en connaissant son titre (sans message de confirmation qui demande si on veut enregistrer les modifications) sans fermer le processus Excel si celui ci contient d'autres fenêtres.

J'arrive à récupérer le handle du processus Excel et celui de toutes ces fenêtres filles (API EnumChildWindows)
J'arrive à envoyer un message pour fermer la fenêtre (Postmessage hdleMdiChild,WM_Close,0,0) mais celui ci demande une confirmation d'enregistrement. J'ai également essayé avec
 - Postmessage hdleMdi,WM_MDIDESTROY,hdleMdiChild,0
 - DestroyWindow hdleMdiChild
 - WMI
 - j'ai essayé un SendKeys pour valider automatiquement la confirmation mais en vain

Mais là je suis à cours d'idée
Merci de votre aide



Stéphane

2 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Comment as tu ouvert ces différentes feuilles depuis VB6?
Si tu as piloter Excel depuis VB6: Chaque Feuille (WorkBook) appartient à la collection WorkBooks de l'objet Excel.Application pour fermer un WorkBook il te suffit de faire .Close de l'objet WorkBook approprié. Pour éviter d'avoir la demande de confiramtion Place la propriété DisplayAlerts de l'objet Excel.Application à False

Voilà j'espère que cela pourra t'aider.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
9
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
14 février 2008

merci de ta réponse

mais malheureusement ce n'est pas si simple car Excel n'est pas lancé depuis mon appli VB6.
je ne maitrise par les processus Excel, ils sont lancés indépendamment de mon application.
c'est la raison pour laquelle j'utilise les api (GetDesktopWindow,GetWindow, EnumChildWindow...) pour trouver ma fenetre fille excel.