Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment empêcher de lancer une macro par un utilisateur ?

4 réponses
Avatar
thigautier
Mon pb est le suivant:

J'essai de protéger au maximum un fichier qui est utilisé par plusieurs
personnes (c'est un fichier qui comporte plusieurs macros avec déclenchements
automatiques ).
Le gros soucis c'est que malgré les protections, l'utilisateur peut toujours
exécuter (au hasard) une macro en passant par Outil\Macro.

Comment faut-il faire pour que les macros ne soient pas accessibles ou visibles
de l'utilisateur ?

Merci d'avance pour le remède...

4 réponses

Avatar
garnote
Salut,

Affiche une feuille macro et va voir dans
Outils / Propriétés de VBA Projets... / Protection
...

Serge

"ThiGautier" a écrit dans le message de news:

Mon pb est le suivant:

J'essai de protéger au maximum un fichier qui est utilisé par plusieurs
personnes (c'est un fichier qui comporte plusieurs macros avec
déclenchements

automatiques ).
Le gros soucis c'est que malgré les protections, l'utilisateur peut
toujours

exécuter (au hasard) une macro en passant par OutilMacro.

Comment faut-il faire pour que les macros ne soient pas accessibles ou
visibles

de l'utilisateur ?

Merci d'avance pour le remède...



Avatar
Titus
Salut ThiGautier

En tête de module tu saisis

Option private module
et tes macros deviendront non visible par macro / macros

Salutations
Titus



"ThiGautier" a écrit dans le message de
news:
Mon pb est le suivant:

J'essai de protéger au maximum un fichier qui est utilisé par plusieurs
personnes (c'est un fichier qui comporte plusieurs macros avec
déclenchements

automatiques ).
Le gros soucis c'est que malgré les protections, l'utilisateur peut
toujours

exécuter (au hasard) une macro en passant par OutilMacro.

Comment faut-il faire pour que les macros ne soient pas accessibles ou
visibles

de l'utilisateur ?

Merci d'avance pour le remède...



Avatar
Michel Gaboly
Bonsoir,

Autre solution : si tu as besoin de pouvoir utiliser certaines des
macros à partir d'autres modules, et que "Private Module" ne te
convient pas, tu peux également utiliser un "faux" argument :

Sub Toto(i)
Msgbox "Macro masquée"
End Toto

L'argument i n'est pas utilisé dans le code. Cependant, sa simple
présence, fait que la macro n'est plus affichée : puisqu'on est
censé devoir lui fournir un argument, elle ne peut être appelée
que par du code VBA, et donc n'apparaît plus.

Cependant, si une autre procédure l'appelle, tu auras une erreur
de compilation (Argument non facultatif).

La solution est simple, et consiste à ajouter le mot "Optional" :

Sub Toto(Optional i)
Msgbox "Macro masquée"
End Toto

La macro Toto peut à nouveau être appelée à partir d'une autre
procédure.



Salut ThiGautier

En tête de module tu saisis

Option private module
et tes macros deviendront non visible par macro / macros

Salutations
Titus

"ThiGautier" a écrit dans le message de
news:
Mon pb est le suivant:

J'essai de protéger au maximum un fichier qui est utilisé par plusieurs
personnes (c'est un fichier qui comporte plusieurs macros avec
déclenchements

automatiques ).
Le gros soucis c'est que malgré les protections, l'utilisateur peut
toujours

exécuter (au hasard) une macro en passant par OutilMacro.

Comment faut-il faire pour que les macros ne soient pas accessibles ou
visibles

de l'utilisateur ?

Merci d'avance pour le remède...




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
Pascal Engelmajer
Salut,
une piste ...
Sub xxx()
If TypeName(Application.Caller) = "Error" Then 'menu ou touche
MsgBox "appel interdit"
Exit Sub
ElseIf Application.Caller = "Bouton 1" Then
'C'est OK
ElseIf Application.Caller = "Bouton 2" Then
MsgBox "vous ne pouvez pas utiliser ce bouton"
End If
End Sub


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"ThiGautier" a écrit dans le message de news:

Mon pb est le suivant:

J'essai de protéger au maximum un fichier qui est utilisé par plusieurs
personnes (c'est un fichier qui comporte plusieurs macros avec
déclenchements

automatiques ).
Le gros soucis c'est que malgré les protections, l'utilisateur peut
toujours

exécuter (au hasard) une macro en passant par OutilMacro.

Comment faut-il faire pour que les macros ne soient pas accessibles ou
visibles

de l'utilisateur ?

Merci d'avance pour le remède...