|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
Bonjour,
ma base Access ouvre des fichiers Excel et je n'arrive pas à fermer l'application Excel correctement: j'utilise une séquence du genre: Code :
Quelqu'un peut-il m'indiquer comment m'y prendre. Mille mercis |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() |
Bonjour,
Ce problème est connu et il existe une solution que j'ai fini par mettre au point ; Au moment de ton instanciation de xlApp, tu prends le HWnd de la fenêtre : Code :
Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
||
|
|
10
|
|
|
#3 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
avant de tuer le processus au bazooka, voir si les solutions exposées dans ce message règlent le problème : http://www.developpez.net/forums/d92...ocessus-excel/
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() |
Oui, Thierry, je suis d'accord.
Le fait que la méthode Quit échoue est de toute façon justifiée. Quand je suggère un KillProcess, j'entends bien évidement que cela concerne une instance bien précise et indépendante. Merci pour le lien; Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
bonsoir,
merci à tous les deux, je vais tester cela et je vous tiens au courant A très bientôt |
|
|
00
|
|
|
#6 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Note que si ton classeur Excel est caché alors le .quit ne ferme pas proprement Excel. Il faut rendre le classeur visible explictement avant d'envoyer le .quit ... enfin cela marche la plus part du temps.
Note que cela produit parfois un effet de stroboscope assez désagréable. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
bonsoir,
merci pour cette piste, apparemment, ce n'est pas encore cela. Je suis en train de bien vérifer que chaque instruction Excel est bien préfixée, comme indiqué dans le thread de discussion indiqué par Arkham46 mais je n'ai pas encore trouvé précisément ce qui pose problème. Patience et longueur de temps...... |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
Bonjour,
je n'ai toujours pas trouvé de solution. Je me suis posé des questions sur l'utilisation de l'instruction 'GetObject' au lieu de 'CreateObject' et dans l'aide de Microsoft relative à cette instruction GetObject, il y a un exemple intéressant car, en exécutant tout simplement la routine 'GetExcel', je retrouve les mêmes symptômes: Excel reste ouvert alors que l'instruction .quit est utilisée normalement, qu'il n'y a pas de problème de préfixe et que l'application est visible....bref, je patauge. Je ne me suis pas encore résolu à appliquer la méthode préconisée par Agyronet car je ne sais pas comment forcer la fermeture via l'API TerminateProcess. A suivre , donc |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
re bonjour,
en cherchant dans les archives, j'ai bien trouvé l'API TerminateProcess. J'ai aussi trouvé une autre astuce de déclaration . Je vais essayer cela, a bientôt |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Thierry PallierRegisseur Inscription : octobre 2006 Messages : 47 ![]() |
Bonjour ChChatou et tout le monde.
As-tu essayé de libéré les variable après xlApp.Quit ? Perso, je ferme Excel directement sans fermer le fichier. Et enfin, je pense que dans ton dernier message,tu es obligé de référencer Excel . A+ |
|
|
00
|
|
|
#11 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
As-tu refais tes tests après un redemarrage de ta machine.
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#12 | ||
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
bonjour,
j'ai testé le petit bout de code suivant: Code :
Merci de vos conseils A bientôt |
||
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
re-bonjour,
j'ai oublié de préciser que j'ai re-re-démarré la machine. Cordialement |
|
|
00
|
|
|
#14 | ||
![]() ![]() ![]() |
Humm, de quelle version d'Exel s'agit-il ?
N'as-tu pas plusieurs versions d'Excel installées ? Qu'est-ce que ça donne avec ton code modifié comme suit ? Code :
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
||
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé
![]() Chercheur de bonheur Inscription : août 2007 Messages : 2 255 ![]() |
Bonjour,
personnellement je déclare XLAPP comme object et pour cloturer excel, je fais J'ignore si cela peut avoir un impact. Autrechose : je teste également si excel est ouvert AVANT et je ne quitte excel que s'il ne tournait pas avant. Ci-dessous, un code VBA Access qui me permet de faire tourner des macros de reformattage (macro Excel stockée dans un .XLS dédicacés) sur des fichiers excel bruts exportés par Acces (2003). Code :
__________________
(\ _ /) Cordialement G@dz (='.'=) (")-(") Vous avez des neurones. Sollicitez-les. ![]() . Si vous êtes aidé, pensez à Voter.
|
||
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
Bonsoir,
merci de vos conseils. Pour ce qui est d'Excel, il s'agit de la version Excel 2003 avec Windows XP . Il s'agit d'une solution d'entreprise, que je ne peux pas changer car elle est installée et mise à jour par télédistribution. Les disques C sont bloqués pour que le personnel ne 'bidouille' pas les programmes et n'installe pas de version 'pirate' non compatible. Berf, la vraie vie.... Pour le reste, je vais tester ce soir suivant vos conseils. Cordialement |
|
|
00
|
|
|
#17 | ||||
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
re-bonsoir,
après avoir exécuté la routine d'Argyronet, j'ai ceci dans la fenêtre d'exécution: Code :
A l'intention de Godzestla, j'ai testé l'ajout de .Application devant .quit, ça ne change rien. J'ai également testé ce type de script pour détecter si Excel est déja ouvert, (je l'ai trouvé dans l'aide Excel, relative à GetObject, en cliquant dans l'exemple) on a le code ci-dessous: Code :
Merci à vous, à bientôt |
||||
|
|
00
|
|
|
#18 |
![]() ![]() ![]() |
Humm, tu ne m'a pas évoqué la version ni la multi-installation...
Je sais de source sûre que Office 2000 présente (parfois mais de façon certaine pour Outlook) ce genre de comportement comme non résolvable sauf avec la méthode KillProcess que je t'ai suggéré. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#19 |
|
Invité régulier
![]() CHRISTIAN WOUTERS Inscription : septembre 2010 Messages : 30 ![]() |
Bonjour,
j'ai la version Excel 2003 sur Windows XP SP3. Je suis certain de ne pas avoir plusieurs versions d'installée dans la mesure où de disque système a été remasterisé récemment par le Service Informatique de l'entreprise. Je comprends que ce n'est pas dû à la programmation et quel a seule porte de sortie consiste à tuer le process avec les routines du genre 'TerminateProcess'. C'est un compromis à avoir avec mes utilisateurs car cela va aussi fermer les autres occurences de l'applications qui pourraient tourner en parrallèle. Je vais tester cela ce week-end et je vous tiens au courant. Cordialement |
|
|
00
|
|
|
#20 | ||
|
Expert Confirmé
![]() Chercheur de bonheur Inscription : août 2007 Messages : 2 255 ![]() |
Bonjour,
quelles version de Office 2003 as-tu ? SP3 ? Jusqu'au SP2 j'avais des problèmes avec le Quit et le test de Code :
Depuis le SP3, plus de problèmes de cette nature (mais d'autres.... )
__________________
(\ _ /) Cordialement G@dz (='.'=) (")-(") Vous avez des neurones. Sollicitez-les. ![]() . Si vous êtes aidé, pensez à Voter.
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com