tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006
-
1 sept. 2006 à 10:31
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
1 sept. 2006 à 15:19
Bonjour,
j'ouvre un fichier Excel par un bouton sur un form VBA et je voudrais, lorsque l'utilisateur a lu et peut-être modifié ce fichier, l'importer dans une table ACCESS.
J'aimerais dc juste savoir comment détecter la fermeture du classeur pour lancer mon import. J'ai entendu parler du BeforeClose du Workbook mais je n'arrive pas à l'implémenter.
tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006 1 sept. 2006 à 11:32
Ouais mais nan c'est pas ça le problème. Jsuis sous ACCESS. J'ai pas ThisWorkbook ds l'explorateur.Ce que jveux c'est un genre de boucle qui vérifie l'ouverture du fichier et à la sortie de celle-làa ben jfais mon import. Le pb c'est de savoir la condition de la boucle.
Merci
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 1 sept. 2006 à 12:09
Est-ce que ton programme Access ouvre toujours le même fichier Excel ou
est-ce que ça peut être n'importe quel fichier xls selon les besoins de
l'utilisateur ?
Personnellement, j'utilise la méthode inverse, je travaille sous Excel
et j'exporte vers Access qui lui n'a pas besoin d'être ouvert.
Je t'aurais suggérer d'utiliser les API et vérifier les processus, mais
si le programme Excel se ferme, le processus n'y est plus et indique
qu'Excel est déjà fermé, donc trop tard pour importer. À moins de
demander à l'utilisateur s'il veut le faire. Si oui, tu le rouvres à
nouveau (invisible au besoin) et importe.
Tu pourrais aussi implémenter la procédure Workbook_BeforeClose à
partir d'Access, je pense. Tu pourrais y mettre un msgbox demandant si
oui ou non le programme doit importer les données et mettre une
variable Global Boolean dans le programme Excel.
À ce moment Access regarde cette variable et lorsqu'elle est True, il importe...
tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006 1 sept. 2006 à 12:15
Ouais merci.
L'idée du BeforeClose jl'avais déjà mais j'arrive pas à le faire fonctionner. J'ai bien cette procédure dans mon code mais je me demande comment le VBA pourrait savoir qu'il s'agit de ce WorkBook. J'ai tenté de l'activer mais sans aucune réussite. En fait j'aimerais bien savoir si il y a une propriété d'un Workbook ou d'une Excel.Application du style "isOpen".
Ca me permettrait de tester son ouverture dans une boucle.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 1 sept. 2006 à 12:20
Ça dépend comment tu ouvres Excel. Si tu ouvres avec Shell ou ShellExecute, tu auras un processus, c'est tout.
Si tu crées des objets du genre xlApp as Excel.Application, xlBook as
Excel.Workbook, ... à ce moment tu peux utiliser toutes de sortes de
possibilités, comme les Windows