Quitter Excel par VB (Urgent)

Signaler
Messages postés
6
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
19 août 2003
-
Messages postés
14
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
20 février 2007
-
Dans un programme VB 6 je dois ouvrir un fichier Excel 97, y récupérer des données pour les transférer dans une base et quitter Excel. Ce dernier ne doit bien sûr pas apparaître à l'écran.

Tout fonctionne bien mais lorsque ma procédure se termine Excel est toujours en tache de fond (malgré l'utilisation de la méthode application.quit).

Sauriez-vous commente résoudre ce problème (j'aurai besoin d'une solution avant ce soir...)?

Merci d'avance

11 réponses

Messages postés
75
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
24 mars 2003

salut

bon j'ai deja u ce prob :)
donc a mon avis fo fermer toutes tes feuilles(worksheet) ensuite tu fermes ton classeur(workbook) sans oublié les
set xlsheet = nothing
set xlapplication = nothing

vala ;)
0
Messages postés
6
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
19 août 2003

Non ça ne fonctionne toujours pas (de toute façon il refuse de supprimer toutes les feuilles d'un classeur).

Voilà actuellement ce que je fais:

' Fermeture du fichier excel

ObjExcel.DisplayAlerts = False

Call ObjWorkbook.Close

Set ObjWorkbook = Nothing

Call ObjExcel.Application.Quit

Set ObjExcel = Nothing

C'est vraiment lourd cette histoire je fai la même chose que dans l'aide...
0
Messages postés
75
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
24 mars 2003

re :)

essaye ca alors dans cet ordre :
set ExcelFeuille = nothing
Excelappplication.displayalerts = false
Excelappplication.quit
set Excelappplication = nothing

ou sinon fai une boucle qui ferme toutes les feuilles ensuite une boucle qui ferme tous les classeurs.

bye :)
0
Messages postés
6
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
19 août 2003

re

nope, marche toujours po...

j'ai déjà essayé de tout fermer mais ça change rien

par contre ce qui est bizarre c'est que le Excel en tache de fond disparait à la fin de l'execution du programme... donc il est doit bien être lié a un problème de variable vb pas déchargée
0
Messages postés
104
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
28 septembre 2006

A mon avis tu travailles en mode debug et tu stoppes ton prog à la mano.
Ce qui fait que tu as un classeur xls qui restes chargé dans windows.
0
Messages postés
6
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
19 août 2003

Mauvais avis, je sais utiliser le mode débug et le gestionnaire des taches de windows quand même :-P
0
Messages postés
37
Date d'inscription
vendredi 21 juin 2002
Statut
Membre
Dernière intervention
13 septembre 2002

ouais ben moi aussi jai été pris avec le meme probleme ... jai jamais trouvé la solution alors si tu la trouve ... contacte moi !

ce que jai faite pour l'instant ... c'est un kill du process EXCEL.EXE
pas eu trop le choix
Salut et tient moi au courant
0
Messages postés
37
Date d'inscription
vendredi 21 juin 2002
Statut
Membre
Dernière intervention
13 septembre 2002

ouais ben moi aussi jai été pris avec le meme probleme ... jai jamais trouvé la solution alors si tu la trouve ... contacte moi !

ce que jai faite pour l'instant ... c'est un kill du process EXCEL.EXE
pas eu trop le choix
Salut et tient moi au courant
0
Messages postés
37
Date d'inscription
vendredi 21 juin 2002
Statut
Membre
Dernière intervention
13 septembre 2002

ouais ben moi aussi jai été pris avec le meme probleme ... jai jamais trouvé la solution alors si tu la trouve ... contacte moi !

ce que jai faite pour l'instant ... c'est un kill du process EXCEL.EXE
pas eu trop le choix
Salut et tient moi au courant
0
Messages postés
12
Date d'inscription
vendredi 1 juillet 2005
Statut
Membre
Dernière intervention
17 août 2005

bon je sais ca date un peu comme poste mais pr une fois que jpx répondre à quelque chose...
en fait j'suis tombé sur le meme problème
et c'est bien la méthode .quit qui permet de sortir d'excel
perso je l'utilisais mal
j'm'explique
je fesais un objet excel
Set xlApp = CreateObject("Excel.Application")
Set xlBook = Workbooks.Open(chemin)
Set xlSheet = xlBook.Sheets(1)

le problème c'est que dans ce cas là, mon objet application pointe dans le vide
en fait la solution c'etait ca :
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(chemin)Set xlSheet xlBook.Sheets(1)>l'objet application est pointé par l'objet classeur qui est pointé par l'objet feuille
apres c'est comme pour les dragons, tu tue la tete, le reste meurt (j'ai dis dragon hein l'hydre de Lerne ca compte pas c'est une hydre pas un dragon ;p)

apres pour fermer c'est ca:

'sauvegarde du fichier Excel
xlApp.ActiveWorkbook.SaveAs (chemin)
'fermeture du fichier Excel
xlBook.Close
Set xlBook = Nothing
Set xlSheet = Nothing
xlApp.Quit

et ca marche du feu de dieu
vala
en esperant avoir été utile à quelqu'un....

"La meilleure facon de dire, c'est faire"


Ernesto Guevara de la Serna
0
Messages postés
14
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
20 février 2007

Bonjour,
j'ai suivi vos conseils pour ouvrir, lire et fermer un fichier excel.
Mais bien sur il faut toujours que ce soit un peu plus compliqué ...!
Ce code fonctionne bien avec un fichier excel classique, par contre le fichier que je dois ouvrir demande systématiquement d'être enregistré (même s'il est en lecture seule et même si je ne modifie rien dedans) ...
Voila, je suis bloqué, pouvez vous m'aider. Voici mon code...

Private Sub b1_Click()
PT_XL.Visible = True
'Fichier à ouvrir
PT_XL.Workbooks.Open "c:\type.xls", ReadOnly:=True


' IgnoreReadOnlyRecommended:=True
'PT_XL.Workbooks.Open "S:\Accès aux projets.xls"


'w.Close savechanges:=False
Excelappplication.DisplayAlerts = False
Excelappplication.Quit
PT_XL.Quit
PT_XL.Close savechanges:=False
PT_XL.Workbooks.Close
Excelappplication.DisplayAlerts = False
Excelappplication.Quit
Set Excelappplication = Nothing
Set PT_XL = Nothing


End Sub


Merci d'avance
0