Re : Explication code
Bonsoir Calvus,
Voici en mes mots quelques explications complémentaires... Une SUB peut être déclarée :
- Private (cachée des autres modules)
- Public (visible dans les autres modules)
- rien du tout : donc public par défaut et visible dans les autres modules.
Si tu as une SUB appelée Test1 déclarée Private dans le Module1, celle-ci ne sera pas visible dans les autres modules. Donc si tu as un SUB dans le module2 qui essaie d'appeler Test1, ça ne va pas marcher.
Par contre Test1 pourra être appelée par les autres SUB contenues dans Module1.
Par contre si ta SUB est déclarée Public, elle peut être appelée par n'importe quel module.
L'avantage de déclarer une SUB comme Private est lorsque tu as plusieurs modules et que chacun à une fonction particulière. Tu peux ainsi "encapsuler" certains SUB à des modules précis. Ça peut être pratique quand tu as un très long code avec plusieurs SUB.
Aussi les SUB qui sont Private ne sont pas visible dans Excel dans le gestionnaire des macros (Développeur | Macro). Ça peut servir quand tu veux cacher certains SUB aux utilisateurs.
Lorsque tu as un objet, comme par exemple un bouton dans un formulaire, on a alors des "événements" (exemple _Click) et ces SUB sont toujours Private car elles ne peut être appelée que par l'objet lui-même qui fait partie du formulaire. Tu ne peux pas appeler "CommandButton1_Click" à partir d'une autre SUB contenue dans un autre module par exemple.
Ouf pas facile à expliquer.
Regarde le fichier joint. Le bouton ouvre le formulaire et chaque bouton appelle une Sub Test1, Test1a et Test1b. Chacune étant déclarée Private, Public ou rien du tout. Regarde le code, ça devrait t'aider à comprendre... (j'espère)
A+