Fermer Excel après l'avoir ouvert par VB
commentcamarcheeay
Messages postés
735
Statut
Membre
-
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!
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!
A voir également:
- Fermer Excel après l'avoir ouvert par VB
- Liste déroulante excel - Guide
- Excel trier par ordre croissant chiffre - Guide
- Word et excel gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Si ou excel - Guide
2 réponses
Salut le forum
La méthode .Close de l'objet Excel.Application devrait suffir.
Sinon essaye le code suivant :
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
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)]
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!
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!