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
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