Fermer excel

Signaler
Messages postés
33
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
5 février 2009
-
Messages postés
122
Date d'inscription
dimanche 19 mars 2006
Statut
Membre
Dernière intervention
18 juillet 2009
-
Bonsoir,

J'ai un petit problème. J'ai fais une application qui a besoin de lancer plusieurs fois excel. Ce que je n'arrive pas a faire c'est de fermer excel (il reste dans le gestionnaire des taches), or j'ai besoin de le fermer pour le relancer ailleur. Comment faire pour qu'il ne reste plus dans le gestionnaire des taches.

Merci

Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille excel

Private Sub excel_on()
Set appExcel = CreateObject("Excel.Application")
Set wbExcel = appExcel.Workbooks.Open(App.Path + "\B2D.xls")
Set wsExcel = wbExcel.Worksheets(1)
End Function

Private Sub excel_off()
wbExcel.Save
appExcel.Quit
End Sub

Private Sub commande1()
Call excel_on
Traitement1
Traitement2
Traitement3
Traitement4
Call excel_off
End Sub

6 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Comme tu utilises CreateObject, enlève les références que tu as probablement cochées. Puis déclare tes objets as Object

Dim appExcel As Object 'Application Excel

Dim wbExcel As Object 'Classeur Excel

Dim wsExcel As Object 'Feuille excel

Private Sub excel_off()

    wbExcel.Save

    appExcel.Quit

    Set wsExcel = Nothing   ' toujours préférable mais pas essentiel, je pense
    Set wbExcel = Nothing   ' de mettre tous les objets à Nothing

    Set appExcel = Nothing  
End Sub

MPi²
Messages postés
33
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
5 février 2009

Alors j'ai enlever le référence excel, ca fonction avec F5 mais plus moyen de compiler sans la référence. Et si je remet la référence le problème revient.
Help Me!!!
Messages postés
33
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
5 février 2009

Il me met cette erreur:
Project failed to build!
La méthode '~'de l'objet '~' a échoué.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Excel a effectivement tendance à garder un process en execution lorsqu'il est lancé depuis le code. Et à part passer par le gestionnaire de tache, je ne vois pas de solution simple en VB6.

J'ai bien une méthode qui m'a été passée par un collègue, mais elle est en .Net et n'est pas transposable en VB6. Elle consiste à récupérer la liste des process avant le lancement, juste après le lancement. La différence entre les deux te donne le process lancé, qu'il ne reste plus qu'à détruire après avoir fermé Excel par le code.
 Mais je ne sais pas le transposé de façon simple en VB6.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
33
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
5 février 2009

Et de facon compliqué??? (sait-on jamais)
Messages postés
122
Date d'inscription
dimanche 19 mars 2006
Statut
Membre
Dernière intervention
18 juillet 2009

ESSAI CELA:

With ActiveWorkbook
    .Save
    .RunAutoMacros xlAutoClose
    .Close
End With
appExcel .Quit
Set appExcel  = Nothing