Problème fermeture application excel

[Résolu]
Signaler
Messages postés
26
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
27 juin 2012
-
Messages postés
26
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
27 juin 2012
-
Bonjour à tous,

J'ai un petit soucis dans mon application lorsque je ferme 2 fichiers exel 2000 dans mon appli VB6. Une application excel ne ferme pas et reste dans le gestionnaire des tâches.

Voici mon code pour la fermeture:

'Sauvegarde et fermeture du fichier

Trs_Montage.SaveAs FileName:=chemin 'On sauvegarde le classeur Trs_montage a l'adresse contenue dans chemin

Feuille_TRS_2010.Close 'Fermeture de feuille Excel
Feuille_TRS_2011.Close 'Fermeture de feuille Excel
Feuille_TRS_2016.Close 'Fermeture de feuille Excel
Feuille_TRS_2029.Close 'Fermeture de feuille Excel
Feuille_TRS_2555.Close 'Fermeture de feuille Excel
Feuille_Analyse_Production.Close 'Fermeture de feuille Excel
Trs_Montage.ActiveDocument.Close
Trs_Montage.Close 'Fermeture du classeur Excel
wsExcel.Close
planning.Close
appliexcel.quit 'Fermeture des applications Excel
appExcel.quit

'Désallocation mémoire

Set Feuille_TRS_2010 = Nothing
Set Feuille_TRS_2011 = Nothing
Set Feuille_TRS_2016 = Nothing
Set Feuille_TRS_2029 = Nothing
Set Feuille_TRS_2555 = Nothing
Set Feuille_Analyse_Production = Nothing
Set Trs_Montage = Nothing
Set appliexcel = Nothing

Set wsExcel = Nothing
Set planning = Nothing
Set appExcel = Nothing

Set Groupofs_BS2555 = Nothing



J'ai tout essayé, il doit y avoir plein de commandes en doublons...
A cause de ça je ne peux plus ouvrir d'autre fichier excel sur le PC sans aller killer l'appli excel dans le gestionnaire des taches...

Please help!!!

5 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
Salut,

alors déjà pour éviter de te retrouver prisonnier de ta session "non graphique" tu peux la privatiser en ajoutant la ligne suivante après la création de ta session :

appliexcel.IgnoreRemoteRequests = True

Cela aura pour effet d'obliger windows à ouvrir une nouvelle session excel si un fichier doit être ouvert. Note que cette propriété ne s'applique qu'a la session sur la quelle elle est appliquée.

Ceci étant du bricolage, il faudrait maintenant comprendre ce qui ce passe mais pour cela il faudrait savoir comment tu crées ta session excel !

A+
Messages postés
26
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
27 juin 2012

Merci ,

Ta commande fonctionne même si je ne comprends pas d’où ça vient.

Pour la création des appli excel je passe par:
Set appliexcel = CreateObject("Excel.Application")
et
Set appExcel = CreateObject("Excel.Application")

De plus Excel n'apparait plus dans le gestionnaire des taches.

Merci!!!
Messages postés
26
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
27 juin 2012

En fait maintenant quand j'ouvre un autre fichier excel sur ce pc, j'ai bien excel qui se lance mais il n'ouvre plus de classeur et il faut que j'aille le chercher en faisant fichier/ouvrir...

Enfin bon c'est mieux qu'avant...
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
re,

ok, mais comment est dimensionnée ta variable appExcel ?

En générale ce problème vient du dimensionnement de la variable qui reçoit l'appli excel.
Il faut éviter d'utiliser "Excel.Application" et préférer le dimensionnement en "Object".

Tu peux pendant le développement de ton programme faire ce référencement pour avoir accès au objets, propriétées etc d'excel. Cela facilite la programmation mais supprime la référence avant essai et utilise une variable Object.

Vois l'explication de l'ami steph01190 qui à fait un tuto sur le sujet :

[Manipuler des fichiers excel sous VB6 sans référencer excel et sans laisser de processus dans le gestionnaire des taches Manipuler des fichiers excel sous VB6 sans référencer excel et sans laisser de processus dans le gestionnaire des taches]

A+
Messages postés
26
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
27 juin 2012

Les variables sont dimensionnées comme suit:

Dim appliexcel As Object 'Déclaration de appliexcel comme un objet (pour ensuite le définir en application Excel)
Dim Trs_Montage As Object 'Déclaration de trs_Montage comme un objet (pour ensuite le définir en Classeur Excel)
Dim Page_active As Object
Dim Feuille_TRS_2010 As Object 'Déclaration de feuille_TRS_2010 comme un objet (pour ensuite le définir en feuille Excel)
Dim Feuille_TRS_2011 As Object 'Déclaration de feuille_TRS_2011 comme un objet (pour ensuite le définir en feuille Excel)
Dim Feuille_TRS_2016 As Object 'Déclaration de feuille_TRS_2016 comme un objet (pour ensuite le définir en feuille Excel)
Dim Feuille_TRS_2029 As Object 'Déclaration de feuille_TRS_2029 comme un objet (pour ensuite le définir en feuille Excel)
Dim Feuille_TRS_2555 As Object 'Déclaration de feuille_TRS_2555 comme un objet (pour ensuite le définir en feuille Excel)
Dim Feuille_Atelier_montage As Object

Dim Feuille_machine_analysée As Object
Dim Feuille_Analyse_Production As Object 'Déclaration de feuille_TRS_2010 comme un objet (pour ensuite le définir en feuille Excel)


'Déclarations pour ouverture du calendrier

Dim appExcel As Object 'Déclaration de app.Excel comme un objet (pour ensuite le définir en application Excel)
Dim planning As Object 'Déclaration de planning comme un objet (pour ensuite le définir en classeur Excel)
Dim wsExcel As Object 'Déclaration de wsExcel comme un objet (pour ensuite le définir en feuille Excel)



Il me semble que ça a l'air conforme à ce qu'explique steph01190.

Enfin la je sèche...