VBA - Fermeture application Excel [Résolu]

Aeblan 2 Messages postés jeudi 1 juillet 2010Date d'inscription 29 juillet 2010 Dernière intervention - 22 juil. 2010 à 12:36 - Dernière réponse : Aeblan 2 Messages postés jeudi 1 juillet 2010Date d'inscription 29 juillet 2010 Dernière intervention
- 23 juil. 2010 à 10:05
Bonjour,
J'ai un problème avec la fermeture de mon application Excel (Office 2007).
Je l'ouvre à l'aide d'une macro qui n'est pas réalisée sous Excel, avec le code suivant :

[i]Dim appExcel
'Excel workbook
Dim wsExcel As Workbook

Set appExcel = CreateObject("Excel.Application")
'Creation du fichier Excel
Set wsExcel = Workbooks.Add
wsExcel.Activate/i

Ensuite, après traitement sur le document créé et enregistré, je souhaite fermer l'application. J'utilise alors le code suivant :

[i]Call wsExcel.SaveAs(OutputPath + "" + OutputXLSFileName)'La sauvegarde s'effectue normalement
wsExcel.Close
appExcel.Application.Quit
appExcel.Quit
Set wsExcel = Nothing
Set appExcel = Nothing/i

Seulement, je trouve toujours l'application ouverte dans mon gestionnaire des tâches. Comment faire pour fermer complètement l'application ?
Merci d'avance
Afficher la suite 

Votre réponse

2 réponses

cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 22 juil. 2010 à 22:06
+3
Utile
Bonsoir
Je lance l'application excel à partir du vb6
j'écris ça
Dim objexcel As Excel.Application
je n'ai pas declaré
Dim wsExcel As Workbook

Set objexcel = New Excel.Application
objexcel.SheetsInNewWorkbook = 1
objexcel.Workbooks.Add

pour fermer
Set objexcel = Nothing

bonne prog
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ShayW
Aeblan 2 Messages postés jeudi 1 juillet 2010Date d'inscription 29 juillet 2010 Dernière intervention - 23 juil. 2010 à 10:05
0
Utile
Bonjour,
Apparemment il faut en plus ajouter

objexcel.Application.Quit

avant

Set objexcel = Nothing

(Sinon, l'application reste visible dans le task manager)
Et alors ça fonctionnne, le processus se ferme bien. Par contre, il ne se termine qu'à la fin de l'exécution de ma macro (et non au moment où le code atteint la commande correspondante). Je ne sais pas pourquoi. Ce n'est pas gênant pour le code que j'ai à réaliser mais ça pourrait l'être, si quelqu'un à une idée...
Merci ShayW en tout cas.
Commenter la réponse de Aeblan

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.