Macro sur fermeture

R

Routrout

Guest
Est il possible d'exécuter une macro a chaque fois que l'on ferme un certain classeur?

Si oui j'aimerais bien savoir comment faire! Merci

Routrout
 
T

Thierry

Guest
Salut Routrout,

Oui c'est possible...

Tu vas dans l'Editeur VBA, Module de ThisWorkbook (Private Sub, évenementielle)
Et Tu fais une instruction comme ceci :


Private Sub Workbook_BeforeClose(Cancel As Boolean)
MaMacro
End Sub

Mamacro peut être dans un module standard, elle sera exécutée à chaque fermeture du classeur.
On peut sinon mettre les instruction directement dans le Module de ThisWorbook à la place de "MaMacro"

Voili Voila
@+Thierry
 
V

Vériland

Guest
Bonsoir Routrout,

Oui c'est possible à la fermeture du classeur... déclare dans un module :

Sub auto_close()
'
UserForm1.Show
'
End Sub


…dans cet exemple avant la fermeture du fichier on active l’Userform1… bien sûr tu peux rajouter ce que tu veux à l'intérieur…

A+ Vériland
 
T

Thierry

Guest
Salut Vériland

les Macros "Sub Auto_Close " datent de XL 4... Elles sont toujours gérée...
Mais bon je suppose que notre ami Routrout travaille au moins avec XL 97 ...

Dans ce cas, c'est tellement plus confortable d'utiliser les "outils d'aujourd'hui" (qui ne risquent pas de disparaître avec la prochaine version d'Excel... Quoique avec eux faut se méfier de tout !!)

Non je conseille la procédure "Sub Workbook_BeforeClose" qui est finalement plus simple une fois que l'on a pigé les procédure évènementielles....

Bon Youpi c'est 18:52 !! et trois jours de repos !!!

Happy Halloween Tonight To All !!

PS pour Celeda, non je ne me transformerai pas en Orque, mais en Vilain Virus !!

@+Thierry
 
V

Vériland

Guest
Salut Thierry,

C’est vrai va falloir y songer aux procédures événementielles… cela fait maintenant plusieurs jours que je visionne le sujet… j’ai même l’impression de rentrer dans une autre dimension…

Sur les différentes versions Excel, j’ai pour l’instant (heureusement) rencontré aucune difficulté de lecture des macros… ceci dit je pense que tes informations peuvent être fondées, car à en croire les utilisateurs XP et compagnie il semble y avoir certaines difficultés…

Néanmoins pour l'instant, avec tout ça, je pense que Routrout peut avoir l’embarras du choix dans ce post… pour ma part je vais quand même suivre tes conseils et essayer d'utiliser les « outils d’aujourd’hui » …

Bon Week-end Halloween mais reviens-nous avec tes bons antidotes...

A+ Vériland
 
R

Routrout

Guest
Merci!

Je n'avais pas encore remarqué qu'on pouvait associer du code a des évènements sur le Workbook! Voila qui ouvre plein de nouvelles possibilités! ;-)

Merci encore et joyeux Halloween a tous!
 
T

Thierry

Guest
Hello Vériland et tout le monde..........

Petit complément d'info que j'ai trouvé au hazard du net :

Quelle est la différence entre Workbook_Open et Auto_Open ?

Workbook_Open est executé des que l'événement Open se produit quelle qu'en soit la cause.... Auto_Open n'est executé QUE SI le classeur est ouvert par Fichier/Ouvrir (ou un double-clic), et donc PAS sur une ouverture à partir d'un code VBA (c'est pourquoi il faut coder un truc du genre
ActiveWorkbook.RunAutoMacros which:=xlAutoOpen (de mémoire)
Michel (MSA) (sur Disciplus)

@+Thierry
 
V

Vériland

Guest
Bonsoir à tous,

Eh Bien ! Thierry et Ti voilà de bonnes informations … c’est sympa de faire des recherches et de nous renseigner… personnellement je trouve que c’était plus facile à retenir Auto_Open ou Auto_Close (je l’avais dans la case N°8 de mon cerveau) d’ailleurs c’est dommage que je ne puisse pas tout enregistrer comme dans VBA…

Donc si je comprend bien j’ai pris une mauvaise habitude… va falloir que je fasse une défragmentation dans mon cerveau pour tout remettre en ordre… mais j’en suis pas au point de faire un formatage comme Ti avec son XP… ;-)

Alors sur tes conseils Thierry, j’ai rendu visite à disciplus … j’ai fais une recherche sur le sujet Workbook_Open mais je n’ai pas trouvé précisément (bon… faut dire que je n’ai pas approfondi)… par contre je n’ai pas perdu mon temps car en même temps dans le sujet macro de disciplus, j’ai trouvé un lien pour aller sur le site <http://softchris.free.fr> pour le programme SoftNote 2002…

késako ?

« SoftNote 2002 pour Windows 95/98/ME/NT/2000/XP vous permet de créer des notes accessibles d’un simple clic, les notes peuvent être de simples pense-bête mais aussi des fichiers complets insérés directement depuis l’explorateur par glisser / lâcher. »

Bingo… voilà qui va m’aider à faire pleins d’archives… on en voit tellement dans ce forum…

Bon Thierry ou Ti, si par hasard dans votre emploi du temps vous aviez la possibilité de me (re)donner la macro événementielle Workbook_Open… je vous en serais encore une fois très reconnaissant :)...

comme cela, je ferais un... Range("case_N°8").Value

Bon J’espère que ce message ne prendra pas trop de place, car David semble bientôt être « à toc » sur le Plan OVH :

<http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=7046&t=6323>

A+ vériland
 
T

Ti

Guest
Bon, j'ai voulu réparer Windows depuis le CD, ce ##!?%%?? de XP me demandait un mot de passe administrateur qu'il m'a refusé à tous les coups. il a fallu que je le réinstalle en D. Pratique, plus aucun programme ne marche ! Mais bon, les données sont toujours là, c'est l'essentiel.
Pour en revenir aux macros événementielles, une astuce : allez dans Thisworkbook ou dans le code de la feuille et en haut, il y a 2 petites fenêtres, celle de droite liste les procédures disponibles pour l'objet sélectionné dans la fenêtre de gauche. On clique sur un nom de procédure et l'en-tête s'écrit sans erreur. Ensuite on remplit la macro comme on veut.

La même méthode est utilisable dans un Userform : quelquefois une procédure Initialize ou Activate ne veut pas être reconnue par XL et ne s'exécute pas automatiquement. Ne vous arrachez pas les cheveux et procédez comme je l'ai décrit au dessus
 
T

Thierry

Guest
Ah oui Ti a parfaitement raison.

De toutes manières, soyez toujours curieux dans l'Editeur VBA, à partir du moment où il n'y a plus aucun fichier important ouvert (celà va de soi)

Il y a un paquet de petit trucs qui font gagner des millions de minutes...

J'en profite pour rappeler et apprendre aux débutants... N'oubliez pas la Touche F1 !!! une vrai mine d'infos contextuelles quand on l'active lorsque le curseur est sur un mot précis du code... Souvent il y a même des exemples prèts à l'emploi...

Quant au barres d'outils, il y en a une qui n'est pas active par défaut... "Edition".... plein de petits bouton qui simplifie la programmation... (info express par exemple...)

La curiosité n'est pas un défaut en VBA !!
Allez à plus tard... je suis en train de faire une p'tite démo pour Richard qui n'a pas eu de réponse encore.....

@+Thierry
 
V

Vériland

Guest
Mais en voilà des bons conseils… entre Ti avec ses fenêtres et Thierry avec la touche F1 voilà que VBA se découvre, se dévoile, se remarque !!!

Bon Ti, je te laisse avec XP et Thierry avec Richard… bon courage à tous les deux… moi je suis avec VBA…

A+ vériland
 

Discussions similaires

Réponses
12
Affichages
401
Réponses
3
Affichages
428

Statistiques des forums

Discussions
312 763
Messages
2 091 835
Membres
105 076
dernier inscrit
simeand