cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
8 août 2007 à 16:02
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 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
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 12 août 2007 à 09:22
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
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 8 août 2007 à 17:19
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).
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 8 août 2007 à 23:14
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)
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 9 août 2007 à 05:36
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
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 10 août 2007 à 05:30
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
cs_etniqs
Messages postés201Date d'inscriptionmardi 7 octobre 2003StatutMembreDernière intervention10 mai 2016 10 août 2007 à 18:42
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
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 12 août 2007 à 06:28
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.
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 12 août 2007 à 07:27
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