(Optional Factice As String) plante mes macros

Bonjour à tous,

J'essaye de masquer mes macros pour l'utilisateur lambda, afin qu'il ne puisse pas les lancer autrement que par les "boutons" (qu'il ne puisse pas les voir dans la liste des macros.)

Le projet Vba est "protégé" par un mot de passe.

J'ai tenté d'utiliser (Optional Factice As String) dans toutes mes macros.

Elles "disparaissent" bien, mais les macros "plantent".

Des erreurs "

Erreur d'exécution '40036': Erreur définie par l'application ou par l'objet

" apparaissent sur des commandes telles que
Sheets(1).Visible = 1

ou même

ActiveSheet.Calculate

Une idée ? Un conseil ?

Une autre méthode pour arriver à mes fins ?

Merci par avance !

Bonsoir,

En principe cela ne pose aucun problème, mais il ne faut pas les mettre sur les événements, par exemple dans l'événement

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

End Sub

il faut laisser le paramètre Sh, tu as seulement le droit de renommer Sh en MaFeuille (par exemple) mais c'est tout. Es-tu sûr que le problème vient de là ?

Sinon tu peux peut-être mettre, dans certains cas, Private devant Sub ?

Bonsoir Benead,

Merci beaucoup,

Oui, c'était exactement ça, il y en avait dans les évènements....

Quand à l'utilisation de Private, je n'ai pas encore compris (il est vrai que je n'ai pas beaucoup cherché pour l'instant) dans quel cas on peut/ il faut / on ne peut pas l'utiliser...

Merci encore !

Tu peux l'utiliser quand une macro fait appel à une autre macro à condition qu'elle soit dans le même module :

Sub macro1()
     Call Macro2
     Call Macro3
End Sub

Private Sub Macro2()
   Msgbox "Macro2"
End Sub

Private Sub Macro3()
   Msgbox "Macro3"
End Sub

Tu ne verras que Macro1 dans la liste des macros

Rechercher des sujets similaires à "optional factice string plante mes macros"