Macros accessibles malgré protection ?

Bonjour à tous,

J'aurai besoin d'un petit coup de pouce pour régler un petit problème dont je viens de me rendre compte en participant à ce sujet:

https://forum.excel-pratique.com/viewtopic.php?f=2&t=102534

Ci-joint , un petit exemple tout simple, 2 boutons en feuille1,associés à une macro qui affiche un MessageBox.

VbaProject est protégé par un mot de passe (mdp)

Je pensais qu'en protégeant les codes par mot de passe, on était obligé de suivre les évènements pour déclencher les macros, donc dans cet exemple, de cliquer sur les Boutons de la feuille1.

Or, lorsque je suis sur une feuille (n'importe laquelle), si je fais Développeur/ Macro, mes 2 macros sont visibles et sélectionnables, et je peux les lancer sans problèmes sans passer par les boutons.

Comment palier à ce problème ? Aurai-je oublié quelque chose ?

Merci à vous,

Cordialement,

2 1

Bonjour,

C'est normal ! La protection de VBAProject protège le code et masque la structure de ton projet mais n'empêche pas de lancer les macros qui peuvent l'être manuellement.

Si tu fais des macros c'est pour qu'elles puissent être exécutées...

Même si elle n'apparaît pas dans la boîte de dialogue (parce que tu t'es débrouillé pour la masquer), connaissant son nom tu le tapes et elle sera exécutée...

Il s'agit de macros attachées à des boutons (de formulaires) et non de procédures d'évènements.

Si par contre tu choisis des boutons ActiveX, là le code exécuté au click se trouve dans une procédure d'évènement, et alors seul l'évènement (clic sur le bouton) peut la lancer.

Cordialement.

Bonjour,

Si tu ne veux pas voir apparaître tes macros dans la fenêtre des macros, tu peux ajouter en tête de tes modules :

Option Private Module

Cdlt.

Bonjour Mferrand,

Merci pour ta réponse et tes explications comme toujours très précises

L'utilisation de boutons ActiveX avec les anciennes versions d'excel (<2003) ne pose-t-elle pas de problème de compatibilité?

Je pensais avoir trouvé une parade en déclarant mes macros en Private, mais j’obtenais un message d'erreur "Sub ou Fonction non définie".

Cordialement,

Bonjour Jean-Eric,

Bonjour,

Si tu ne veux pas voir apparaître tes macros dans la fenêtre des macros, tu peux ajouter en tête de tes modules :

Option Private Module

Nickel !

Merci pour cette astuce

Cordialement,

Re,

Pense à clore le sujet si tu es satisfait.

Bonne fêtes de fin d'année.

Cdlt.

Aucun problème avec 2003.

Si tu rends tes procédures privées, elles ne sont plus accessibles que du module... C'est le module que tu peux rendre privé comme le propose Jean-Eric [Salut], la proc. restant publique.

Rechercher des sujets similaires à "macros accessibles protection"