begin process at 2012 02 15 08:24:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Détecter fermeture d'un classeur Excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Détecter fermeture d'un classeur Excel

vendredi 1 septembre 2006 à 10:31:09 | Détecter fermeture d'un classeur Excel

tedparker

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.

Merci


vendredi 1 septembre 2006 à 11:28:32 | Re : Détecter fermeture d'un classeur Excel

jrivet

Membre Club

Salut,
Lorsque tu es dans l'éditeur VBA

Tu vas dans le code relatif a ThisWorkBook Et la Dans la liste ou il y a marquer (Général) tu choisis WorkBook

Cela aura pour effet de te mettre automatiquement l'événement Open

Toi ensuite tu as juste a cherche dans la liste de droite.BeforeClose

ce qui te donnera:

Private Sub Workbook_BeforeClose(Cancel As Boolean

End Sub 
 


Coloration syntaxique automatique [AFCK]
       


 

@+,  1/1 Ju£i€n 1/1

vendredi 1 septembre 2006 à 11:32:53 | Re : Détecter fermeture d'un classeur Excel

tedparker


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

vendredi 1 septembre 2006 à 12:09:25 | Re : Détecter fermeture d'un classeur Excel

MPi

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...

Des idées comme ça...

MPi
vendredi 1 septembre 2006 à 12:15:27 | Re : Détecter fermeture d'un classeur Excel

tedparker

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


vendredi 1 septembre 2006 à 12:20:12 | Re : Détecter fermeture d'un classeur Excel

MPi

Ç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
For each Fenêtre in Objet.Windows
...
Next

MPi
vendredi 1 septembre 2006 à 12:25:39 | Re : Détecter fermeture d'un classeur Excel

tedparker

Et je fais comment stp pour savoir que c'est bien ma fenêtre Excel ? Je peux avoir le nom du classeur ?


vendredi 1 septembre 2006 à 15:19:20 | Re : Détecter fermeture d'un classeur Excel

mortalino

Membre Club

Tu peux récupérer le handle de la fenêtre excel avec l'api FindWindow.
Il faut que tu connaisses le caption de cette fen^tre.

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"


Cette discussion est classée dans : fichier, excel, détecter, fermeture, classeur


Répondre à ce message

Sujets en rapport avec ce message

Lire un fichier excel et détecter la dernière ligne [ par tetelle80 ] Bonjour,Voilà, je dois lire un fichier excel et enregistrer chaque ligne dans une table SQL Server.Jusque là pas de pb...Mais je n'arrive pas à détect Fermeture automatique d'un classeur Excel [ par JYM ] Quel évennement utiliser pour fermer automatiquement un classeur Excel resté ouvert sur un PC par exemple au bout de 15 minutes. Un exemple de code me Selection de classeur Excel [ par WingZ ] Yop yop,Voila le problème:J'ai creer un programme qui permet d'effectuer des test a partir d'un fichier Excel.Le problème est que si kk1 ouvre un autr impression d'un classeur excel [ par lucsky ] bonjour a tous dans mon prog j'ouvre un fichier excel et le rempli avec les données saisie par l'utilisateur , je l'imprime avec la méthode PRINTOUT p Fermeture d'un fichier Excel sans modification [ par tom42 ] Bonjour,J'utilise des feuilles Excel dans VB que je trie suivant des critères différents.Apres avoir ouvert un fichier Excel et récupéré les informati Ouverture d'un fichier excel dans le même classeur [ par guyver ] J'aimerais pouvoir ouvrir un fichier excel en le recherchant et le rajouter au classeur déjà ouvert. Comment peut-on faire S.V.P. Excel-process ne se kill pas après fermeture de mon fichier [ par mastere30 ] Hello,voici un truc encore tout nouveau pour moi.J'ai crée un formulaire Excel avec une grosse macro VBA. Quand je l'utilise via Excel normale, pas de feuille excel [ par SEB71 ] Bonjour,Je suis nouveau dans le monde de la programmation.Actuellement j'ouvre un classeur excel avec un fichier xls.et dans le meme classeur sur la f Feuilles excel [ par SEB71 ] BOnjour,Comment avec un classeur et 3 feuilles quand on a deja charger sur la feuille 1 un fichier .xls de charger un autre fichier .csv dans le meme creation d'exe. qui affiche une userform de menu, executant du excel ensuite [ par flamalex ] Bonjour, je souhaiterai savoir comment faire, pour creer un executable (sur le bureau par exemple) qui lors de son execution me lancerait une userform


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales