Execution automatique d'un module

Fermé
diabolo5495 Messages postés 112 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 10 février 2015 - 25 juil. 2013 à 15:22
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 juil. 2013 à 16:11
Bonjour à tous,

Voici mon soucis : j'ai trois modules contenant beaucoup de macro codée en VBA. J'aimerais que ces macros s'exécutent automatiquement. Est-il donc possible de faire exécuter simplement les modules eux mêmes et si oui comment ? Sinon comment faire pour que les macros s'exécutent automatiquement ??

Cordialement

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 753
25 juil. 2013 à 15:36
Bonjour,

Pour qu'une macro s'exécute automatiquement (on est bien dans excel???), il faut choisir l'événement déclencheur.
Cela peut être beaucoup de choses comme, par exemple :
- un changement de feuille,
- à l'ouverture du classeur,
- au changement de valeur dans une cellule,
- avant un double-clic
etc.

0
diabolo5495 Messages postés 112 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 10 février 2015 27
25 juil. 2013 à 15:39
Et bien disons à l'ouverture du classeur et en cas de changement ou de complet du tableau !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 753
25 juil. 2013 à 15:51
Exemple : à l'ouverture du classeur déclencher la procédure (Sub) nommé "MessageAlOuverture"

Sub MessageAlOuverture()
MsgBox "Coucou"
End Sub 


Dans le module ThisWorkbook (accessible par un double-clic sur "ThisWorkbook" dans la fenêtre VBA-Project (en haut à gauche de l'éditeur VBA), insérer ce code :
Private Sub Workbook_Open()
Call MessageAlOuverture
End Sub
0
diabolo5495 Messages postés 112 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 10 février 2015 27
25 juil. 2013 à 15:53
Merci beaucoup et juste si je veux en faire plusieurs j'ai juste à écrire comme ceci ?

Private Sub Workbook_Open()
Call MessageAlOuverture, MessageAlFermeture, etc
End Sub
0
diabolo5495 Messages postés 112 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 10 février 2015 27
25 juil. 2013 à 15:55
Est ce normal qu'il me déclare "nom ambigu détecté" ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 753
25 juil. 2013 à 16:11
nom ambigu détecté signifie que tu as deux procédures qui portent le même nom.
Tu n'avais pas, par hasard, déjà une procédure Workbook_Open()??

Et non, tu les écris les unes en dessous des autres, dans l'ordre de leur exécution :

Private Sub Workbook_Open()
Call MessageAlOuverture
Call SupprimeFeuilles
Call CreationFichier
Call BoucleFichiers
End Sub


Par contre, la procédure MessageAlaFermeture devra faire partie d'un autre événement :
par exemple :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call MessageAlaFermeture
End Sub


Liens intéressants :
Les événements dans la feuille de calcul :
https://silkyroad.developpez.com/VBA/EvenementsFeuille/

Les événements Workbook :
https://www.excel-pratique.com/fr/vba/evenements_classeur.php
0

Discussions similaires