je suis à la recherche d'un code vba me permettant de protéger des shapes (formes) qui se trouvent sur la page accueil de mon fichier et qui me servent à actionner des macros.
Ils se nomment par ex. : Rectangle: coins arrondis 1 et ainsi de suite jusqu'au numéro 12.
Donc je souhaiterai que lors de l'ouverture du fichier les shapes en questions soient bloquées afin de ne pas pouvoir actionner les macros.
Bonsoir Marvin, et bienvenu sur XLD, bonsoir Patrick,
Peut être une astuce en utilisant une variable public.
A l'ouverture du fichier cette variable non initialisée vaut "".
Dans les macros il suffit de tester cette variable pour savoir si on peut exécuter la macro.
On débloque les macros en mettant cette variable à 1.
Le tout avec :
VB:
Public Autorisation
Sub Appui()
If Autorisation = "" Then Exit Sub ' A mettre en tête de toutes les macros des boutons
MsgBox "Vous avez appuyé sur le bouton : " & Application.Caller
End Sub
Sub Déblocage()
Autorisation = 1 ' Mettre 1 pour autoriser les macros
End Sub
Sub Reblocage()
Autorisation = "" ' Mettre "" pour bloquer les macros
End Sub
bonsoir
ça c'a n'est pas possible
te reste plus qu' à
ajouter une sub vide dans un module standard
et l'open du workbook
d'ajouter dynamiquement des shapes de même forme dessus en prenant soin de leur donner un fiil.visible=msotrue et .fill.transparency=1 et leur .onction"le nom de ta ta sub vide "
elle sont transparentes mais empêcheront l’accès a tes shapes cliquables
Bonsoir Marvin, et bienvenu sur XLD, bonsoir Patrick,
Peut être une astuce en utilisant une variable public.
A l'ouverture du fichier cette variable non initialisée vaut "".
Dans les macros il suffit de tester cette variable pour savoir si on peut exécuter la macro.
On débloque les macros en mettant cette variable à 1.
Le tout avec :
VB:
Public Autorisation
Sub Appui()
If Autorisation = "" Then Exit Sub ' A mettre en tête de toutes les macros des boutons
MsgBox "Vous avez appuyé sur le bouton : " & Application.Caller
End Sub
Sub Déblocage()
Autorisation = 1 ' Mettre 1 pour autoriser les macros
End Sub
Sub Reblocage()
Autorisation = "" ' Mettre "" pour bloquer les macros
End Sub