OVH Cloud OVH Cloud

Détruire un processus Excel en dehors de VB

4 réponses
Avatar
Emma
Bonjour
je r=E9cup=E8re des donn=E9es dans un fichier vierge Excel 97=20
(via GetObject ou CreateObject si Excel est ouvert ou=20
non). Je ne souhaite pas utiliser la m=E9thode Quit pour=20
lib=E9rer le processus Excel ; je voudrais laisser la=20
possibilit=E9 =E0 l'utilisateur de manipuler, d'enregistrer=20
le fichier o=F9 il veut, avec le nom qu'il veut. Le=20
probl=E8me est que lorsque l'utilisateur ferme=20
l'application Excel que VB a cr=E9=E9, le processus est=20
toujours actif.
Comment transf=E9rer la gestion du processus Excel par=20
l'application elle-m=EAme sans passer par VB (Quit) ?

4 réponses

Avatar
Jessy Sempere [MVP]
Bonjour

Il me semble qu'il faut rendre visible ton instance Excel
Ensuite effectivement tu n'utilises pas Quit mais par contre il faut
que tu libères ta variable objet en utilisant : set AppXL = Nothing

Ca marche ??

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Emma" a écrit dans le message news:
1d68c01c4545a$d20d3fd0$
Bonjour
je récupère des données dans un fichier vierge Excel 97
(via GetObject ou CreateObject si Excel est ouvert ou
non). Je ne souhaite pas utiliser la méthode Quit pour
libérer le processus Excel ; je voudrais laisser la
possibilité à l'utilisateur de manipuler, d'enregistrer
le fichier où il veut, avec le nom qu'il veut. Le
problème est que lorsque l'utilisateur ferme
l'application Excel que VB a créé, le processus est
toujours actif.
Comment transférer la gestion du processus Excel par
l'application elle-même sans passer par VB (Quit) ?
Avatar
Emma
Merci pour ta réponse.
Mais non ça ne marche pas : le processus Excel reste
actif quand Excel est fermé par l'utilisateur

-----Message d'origine-----
Bonjour

Il me semble qu'il faut rendre visible ton instance Excel
Ensuite effectivement tu n'utilises pas Quit mais par


contre il faut
que tu libères ta variable objet en utilisant : set


AppXL = Nothing

Ca marche ??

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Emma" a écrit


dans le message news:
1d68c01c4545a$d20d3fd0$
Bonjour
je récupère des données dans un fichier vierge Excel 97
(via GetObject ou CreateObject si Excel est ouvert ou
non). Je ne souhaite pas utiliser la méthode Quit pour
libérer le processus Excel ; je voudrais laisser la
possibilité à l'utilisateur de manipuler, d'enregistrer
le fichier où il veut, avec le nom qu'il veut. Le
problème est que lorsque l'utilisateur ferme
l'application Excel que VB a créé, le processus est
toujours actif.
Comment transférer la gestion du processus Excel par
l'application elle-même sans passer par VB (Quit) ?


.



Avatar
Jessy Sempere [MVP]
Es-tu bien sûr de libérer toutes tes variables objet ???

Tu n'aurais pas des objets worksheet ou workbook par exemple qui seraient
mal libérés ?


@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Emma" a écrit dans le message news:
1d89c01c45474$37a07a60$
Merci pour ta réponse.
Mais non ça ne marche pas : le processus Excel reste
actif quand Excel est fermé par l'utilisateur

-----Message d'origine-----
Bonjour

Il me semble qu'il faut rendre visible ton instance Excel
Ensuite effectivement tu n'utilises pas Quit mais par


contre il faut
que tu libères ta variable objet en utilisant : set


AppXL = Nothing

Ca marche ??

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Emma" a écrit


dans le message news:
1d68c01c4545a$d20d3fd0$
Bonjour
je récupère des données dans un fichier vierge Excel 97
(via GetObject ou CreateObject si Excel est ouvert ou
non). Je ne souhaite pas utiliser la méthode Quit pour
libérer le processus Excel ; je voudrais laisser la
possibilité à l'utilisateur de manipuler, d'enregistrer
le fichier où il veut, avec le nom qu'il veut. Le
problème est que lorsque l'utilisateur ferme
l'application Excel que VB a créé, le processus est
toujours actif.
Comment transférer la gestion du processus Excel par
l'application elle-même sans passer par VB (Quit) ?


.



Avatar
Emma
Je déclare 3 objets : Excel.Application, Excel.Workbook
et Excel.Worksheet que je libère dans l'ordre suivant :
Worksheet, Workbook puis Application, à la fin de ma
procédure.
VB conserve toujours le "lien" / "canal" avec Excel. Et
c'est ce "lien" / "canal" que j'aimerai supprimer
Merci


-----Message d'origine-----
Es-tu bien sûr de libérer toutes tes variables objet ???

Tu n'aurais pas des objets worksheet ou workbook par


exemple qui seraient
mal libérés ?


@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Emma" a écrit


dans le message news:
1d89c01c45474$37a07a60$
Merci pour ta réponse.
Mais non ça ne marche pas : le processus Excel reste
actif quand Excel est fermé par l'utilisateur

-----Message d'origine-----
Bonjour

Il me semble qu'il faut rendre visible ton instance




Excel
Ensuite effectivement tu n'utilises pas Quit mais par


contre il faut
que tu libères ta variable objet en utilisant : set


AppXL = Nothing

Ca marche ??

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Emma" a écrit


dans le message news:
1d68c01c4545a$d20d3fd0$
Bonjour
je récupère des données dans un fichier vierge Excel 97
(via GetObject ou CreateObject si Excel est ouvert ou
non). Je ne souhaite pas utiliser la méthode Quit pour
libérer le processus Excel ; je voudrais laisser la
possibilité à l'utilisateur de manipuler, d'enregistrer
le fichier où il veut, avec le nom qu'il veut. Le
problème est que lorsque l'utilisateur ferme
l'application Excel que VB a créé, le processus est
toujours actif.
Comment transférer la gestion du processus Excel par
l'application elle-même sans passer par VB (Quit) ?


.





.