Enlever EXCEL.exe dans le processus [Résolu]

Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
- - Dernière réponse : cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
- 12 août 2007 à 09:22
bonjour
dans une form je fait appel à excel dont voila le code
Private Sub excel_Click() 'envoi vers EXCEL


'********Déclaration de l'pplication excel aprés avoir réferencer la dll de excel********
Dim xl As excel.Application
Dim mafeuil As excel.Worksheet
Set xl = CreateObject("excel.application")
'********Ouvrire le classeur excel maintenance **********'
xl.Workbooks.Open App.Path & "\BD\centre.xls"
'********Déclarer vers la feuil sur laquel on va travailler******'
Set mafeuil = xl.Worksheets("fiche")
excel.Enabled = False
envoi des données
xl.Visible = True
Set mafeuil = Nothing
Set xl = Nothing
End Sub
mais quand je ferme cette fenetre j'ai toujours EXCEL.exe dans le processus,donc je ne peut lpus faire appel à mon fichier excel pour envoyer d'autres données.
c'est quand je quitte mon programme que je n'est plus de EXCEL.exe dans le processus
que faut il faire pour enlever EXCEL.exe dans le processus quand je ferme ma fenetre,sans fermer mon prgramme
merci
petchy
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
3
Merci
Re
j'ai trouvé,j'ai modifié le code et ça à l'air de fonctionné

Private Sub excelBP_Click() 'envoi vers EXCEL
Set xl = CreateObject("excel.application")
With xl
.Visible = True
.Workbooks.Open App.Path & "\BD\centre.xls" classeur excel
.Range("E3").Value = Label2(2).Caption
End With
Set xl = Nothing
End Sub

merci à tous et bon dimanche
petchy

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_petchy
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
Tu dois avoir une méthode close ou un truc du genre pour ton objet xl
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Dernière intervention
10 mai 2016
0
Merci
yep

normal tu crées deux objets excel : dim xl et un autre avec createobject, c'est comme si tu faisais :

sub tacpaf()
Dim xl As New Excel.Application
xl.Visible = True
end sub

Ce qui me crée un nouveau processus excel.exe, celui de tacpaf
Commenter la réponse de cs_etniqs
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
c'est pas tout à fait exact etniqs :
l'instruction : Dim xl As New Excel.Application ne créer pas un nouvel objet excel, ca ne fait que déclarer une variable (en l'occurence xl) qui doit être de type Excel.Application, mais ne crée pas l'instance.

Par contre, tu as tout à fait raison pour le As New (qui lui crée une instance dès qu'on utilise la variable), qui est plus prudent que le CreateObject (le createObject ne devrait être utilisé qu'en lateBinding).
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Bien vu DKS ^^  CreateObject à proscrire dans cette situation.

La méthode à utiliser pour fermer l'appli, c'est Quit (Close est la méthode pour ne fermer que le classeur) :

xl.Quit

Par contre pour enregistrer les modifications apportées au classeur, il faut d'abord référencer ton classeur et l'enregistrer (xlBook.Save ou xlBook.Close True)

@++

<hr width="100%" size="2" />(
Commenter la réponse de mortalino
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
Re
merci pour vos conseils,donc voila se qui me reste
Dim xl As New excel.Application
'********Ouvrire le classeur excel  **********'
xl.Workbooks.Open App.Path & "\BD\centre.xls"

xl.Visible = True
Set xl = Nothing
mais c'est toujours pareil,j'ai encore EXCEL.exe dans le processus .
par contre si je met xl.quit ça me ferme l'application EXCEL,mais se n'est pas se que je veut,car dans le fichier Excel il y à des boutons pour
imprimer,enregistrer et quitter qui servent pour l'utilisateur.
dans le bouton quitter de Excel j'ai mis
Application.DisplayAlerts = False
Application.Quit
mais ça ne change rien
bonne journée
petchy
Commenter la réponse de cs_petchy
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
t'es marrant, quand même !!
Tu veux garder l'application Excel, mais supprimer le processus.
Impossible.
Soit tu gardes, soit tu fermes Excel

@++

<hr width="100%" size="2" />(
Commenter la réponse de mortalino
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
salut Mortalino
se n'est pas se que je voulais dire.
je veux supprimer excel du processus quand l'utilisateur fermeras excel et pour l'instant se n'est pas le cas.
si je met xl.quit dans le code dés que excel s'ouvre il me demande d'enregistrer et il se ferme aprés.
je voudrais qu'il reste ouvert, que l'utilisateur fasse se qu'il doit faire et aprés quand il ferme Excel,que je n'est plus EXCEL.exe dans le processus
merci
@ plus
petchy
Commenter la réponse de cs_petchy
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Dernière intervention
10 mai 2016
0
Merci
ayé, j'ai compris, ....

faut que t'utilises le shell, donc.
quand l'utilisateur veut partir, tu fais un timer de qqs secondes et tu balances la fin du process de excel par une command shell

coïto ergo sum
Commenter la réponse de cs_etniqs
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Salut Petchy !

rassure moi sur un point, t'es bien en VB6 ? (et pas VBA, donc )


Sinon, normalement, en faisant xl As New Excel.Application, dès que tu utilises la variables objet xl pour la 1ere fois, le processus Excel se crée, ensuite, à toi de ne pas utiliser xl.Quit pour laisser l'utilisateur travailler dessus.
Et lui, quand il appuiera sur la croix, Excel va lui proposer d'enregistrer, ensuite, il se ferme et le processus se tue.

@++





<hr width="100%" size="2" />


(
Commenter la réponse de mortalino
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
bonjour
je suis bien en VB6,et sur la feuille excel j'ai un bouton Quitter et son code est :
Application.DisplayAlerts = False
Application.Quit
j'ai remarqué  ,si je ne met pas l'intruction pour envoyer vers excel (en vert),ça fonctionne correctement Excel n'est plus dans le processus.
Mais si je met l'instruction,la Excel reste dans le processus ,je ne comprends pas,auriez vous une idée.?

Private Sub excelBP_Click() 'envoi vers EXCEL


'********Déclaration de l'pplication excel aprés avoir réferencer la dll de excel********
Dim xl As New excel.Application


'********Ouvrire le classeur excel  **********'
xl.Workbooks.Open App.Path & "\BD\centre.xls"
'********Déclarer vers la feuil sur laquel on va travailler******'


 
excelBP.Enabled = False
Range("E3").Value = Label2(2).Caption
xl.Visible = True
Set xl = Nothing
End Sub
merci
petchy
Commenter la réponse de cs_petchy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.