Fermer Excel après l'avoir ouvert par VB

commentcamarcheeay Messages postés 735 Statut Membre -  
commentcamarcheeay Messages postés 735 Statut Membre -
Bonjour,

J'utilise le VB pour piloter un fichier Excel.
En fermant mon application, j'ai remarqué que le fichier Excel ouvert reste toujours dans les processus. Je n'arrive pas à le fermer complètement.
Quelqu'un aurait'il une idée pour le fermer?

Je vous remercie!


2 réponses

Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   954
 
Salut le forum

La méthode .Close de l'objet Excel.Application devrait suffir.

Sinon essaye le code suivant :

Dim prc As System.Diagnostics.Process() = Process.GetProcesses() 
     ' Obtient tous les processus en cours d'exécution 

For i As Integer = 0 To prc.Length - 1 ' Parcoure tous les processus trouvés 
  If prc(i).ProcessName = "excel.exe" Then ' Vrai si le nom du processus est excel.exe 
    prc(i).Kill() ' Dans ce cas, on tue le processus, donc Excel s'arrête (prévoir d'enregistrer avant) 
  End If 
Next i 

Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0
commentcamarcheeay Messages postés 735 Statut Membre 86
 
Bonjour,

Mytå, ta solution est très intéressante. Je tournais autour avant. Je voulais fermer les processus ou utiliser close. Quand j'avais essayé xlApp.close, elle ne marchait pas parce que j'avais défini des xlSheet en global et xlApp en local affin d'initialiser les xlSheet. C'est pour ça que le fait d'utiliser xlApp.Close ne fermais pas le processus en cours.

La solution finalement dans mon cas est de faire: xlSheet.Parent.Close quand je veux fermer définitivement le processus Excel.

En ce qui concerne la fermeture directe du processus à l'aide de System.Diagnostics.Process (je vois aussi que tu travailles en VB.Net, je suis sur VB6, il y a donc quelques modification à prévoir de mon côté), la procédure que tu as proposée ferme tous les processus. Cela peut être gênant pour un utilisateur qui a ouvert Excel et mon application au même temps. Il verra son fichier fermée ou le message de confirmation de sauvegarde. Avec une amélioration, je pense que cette solution serait aussi efficace.

Je te remercie de nouveau Mytå, c'était gentil de ta part!
0