Fermer excel

gouzou44 Messages postés 33 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 5 février 2009 - 11 nov. 2007 à 20:41
cs_comme Messages postés 122 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 18 juillet 2009 - 30 nov. 2007 à 21:40
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

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
11 nov. 2007 à 21:24
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²
0
gouzou44 Messages postés 33 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 5 février 2009
11 nov. 2007 à 22:14
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!!!
0
gouzou44 Messages postés 33 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 5 février 2009
11 nov. 2007 à 22:16
Il me met cette erreur:
Project failed to build!
La méthode '~'de l'objet '~' a échoué.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
11 nov. 2007 à 22:33
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gouzou44 Messages postés 33 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 5 février 2009
11 nov. 2007 à 22:35
Et de facon compliqué??? (sait-on jamais)
0
cs_comme Messages postés 122 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 18 juillet 2009
30 nov. 2007 à 21:40
ESSAI CELA:

With ActiveWorkbook
    .Save
    .RunAutoMacros xlAutoClose
    .Close
End With
appExcel .Quit
Set appExcel  = Nothing
0
Rejoignez-nous