docsteff
Messages postés9Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention14 février 2008
-
6 sept. 2007 à 12:42
docsteff
Messages postés9Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention14 février 2008
-
6 sept. 2007 à 14:48
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
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 6 sept. 2007 à 13:13
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
docsteff
Messages postés9Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention14 février 20081 6 sept. 2007 à 14:48
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.