Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Procédure non accessible aux utilisateurs

  • Initiateur de la discussion Initiateur de la discussion willce
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

W

willce

Guest
Bonjour,

Je développe un outil de calcul dans lequel se trouvent de nombreuses procédures et fonctions.

Au cas où il y ait plantage lors du déroulement de ma macro, je souhaite que certaines cellules et feuilles de mon classeur, qui étaient déverrouillées pendant le processus, soient à nouveaux protégées.

Dans l'ancienne version de l'outil, le code de chaque procédures et fonctions était le suivant ainsi:

Sub Calcul()
On Error GoTo fin
Application.EnableCancelKey = xlErrorHandler
....
exit sub
fin:
Feuil("Donnee").Visible = xlVeryHidden
Feuil("Calculs")..Protect Password:="toto"
end sub

Je souhaite que cette "gestion des erreurs" ne se retrouve que dans une seule procédure (par exemple "Verrouillage") que j'appelerai en cas de plantage:

Sub Calcul()
On Error GoTo fin
Application.EnableCancelKey = xlErrorHandler
....
exit sub
fin:
Verrouillage(2)
end sub

Sub Verrouillage(code as byte)
if code =2 then
Feuil("Donnee").Visible = xlVeryHidden
Feuil("Calculs")..Protect Password:="toto"
end if
end sub

Je constate que le fait d'associer à la procédure Verrouillage la variable "code" fait que ma procédure n'est pas accessible depuis la feuille Excel (quand on fait Outils - Macro -Macro on ne la trouve pas)

Est-ce une démarche correcte ? Ma procédure "Verrouillage(code)" est-elle vraiment cachée. Ou existe-t-il une procédure pré-définie dans VBA pour ce genre de cas (= ne pas être accessible aux utilisateurs)?

Merci de vos remarques,
Willce
 
Re : Procédure non accessible aux utilisateurs

Salut Willce

Je constate que le fait d'associer à la procédure Verrouillage la variable "code" fait que ma procédure n'est pas accessible depuis la feuille Excel (quand on fait Outils - Macro -Macro on ne la trouve pas)
Normal, tu n'as pas défini l'attribut "PUBLIC" pour ta procédure
et c'est mieux pour justement ne pas l'avoir dans la liste des procédures

Est-ce une démarche correcte ?
Oui, tout à fait

Ma procédure "Verrouillage(code)" est-elle vraiment cachée
Oui si tu veux la lancée depuis une feuille excel

Ou existe-t-il une procédure pré-définie dans VBA pour ce genre de cas (= ne pas être accessible aux utilisateurs)?
Non

Par contre tu peux passer comme argument, une liste de feuille à verrouiller plutôt qu'un chiffre, ça c'est toi qui vois 😉

A+
 
[RESOLU] Procédure non accessible aux utilisateurs

Merci Bruno pour cette réponse et rapide et précise !🙂

Salut Willce
Normal, tu n'as pas défini l'attribut "PUBLIC" pour ta procédure
et c'est mieux pour justement ne pas l'avoir dans la liste des procédures
A+
Toutefois, par défaut, elles sont public non ? (je ne mets jamais Public devant mes sub et ils sont accessibles de n'importe où (aussi bien du classeur Excel que d'un autre module de VBA)

Suite à cette remarque, j'ai déplacé mon "sub verrouillage(code)" dans un autre module et je constate (ouf !) que je peux l'appeler d'une procédure VBA d'un autre module et qu'elle est invisible dans mon classeur Excel


Salut Willce
Par contre tu peux passer comme argument, une liste de feuille à verrouiller plutôt qu'un chiffre, ça c'est toi qui vois 😉
A+

Ah ouais ! ...Ca peut certainement améliorer !
Encore merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…