Bonjour,
J'ai fragmenté en deux parties indépendantes (A1 et A2) une application VBA Excel (formulaires, db Access) que je trouvais trop volumineuse.
Chacune des deux applications dispose entre autre de deux boutons de commande : un pour se terminer et un autre pour lancer l'autre application.
Lorsque le lance directement une application (A1 ou A2) et que je clique sur le bouton d'arrêt tout se passe bien, il n'y a plus aucun process Excel d'actif.
Lorsque je lance A2 à partir de A1 et que je clique sur le bouton d'arrêt de A2, A2 s'arrête bien mais il reste un process Excel actif.
Comment arrêter proprement (complètement) excel dans tous les cas de figure ?
Petites infos complémentaires:
lorsque je lance A1 j'ai un seul process actif, puis lorsque je lance A2 à partir d'A1 je n'ai toujours qu'un seul process actif, mais lorsque je tue le process Excel (Taskkill) dans l'appli A2, elle se termine bien mais le process Excess reste actif, comme s'il était lié à la première application A1.
code pour lancer A2 depuis A1
Set MyApp = GetObject(, "Excel.Application" )
Unload Userform0 ' userform principal
Workbooks.Open FileName:=ThisWorkbook.Path & "\A2.xls"
MyApp.Quit
Err.Clear
Codes pour quitter A2 (j'ai tout essayé à la queue leu leu )
VBA.Interaction.Shell ("TASKKILL /F /IM excel.exe" )
ExcelKill = "TASKKILL /F /IM Excel.exe"
Shell ExcelKill, vbHide
ExcelKill = "TSKILL /F /IM Excel.exe"
Shell ExcelKill, vbHide
MyApp.Quit
DoEvents
Set MyApp = Nothing
Des idées de solution ?
Message édité par edma le 25-11-2010 à 22:28:43