Bonjour.
Je n'ai pas regardé ton code (pas le droit aux téléchargements) mais à priori tu dois pouvoir passer les cellules à protéger/déprotéger en paramètre.
Personnellement je ferai probablement une feuille où j'indiquerai pour chaque groupe et chaque voiture les cellules concernées, ou mieux je me débrouillerai pour pouvoir les déduire de la position des cellules dans la feuille de saisie ou du numéro du groupe.
Mais supposons que tu y aille avec la feuille de paramétrage, ici une idée :
Groupe |
Mode De Passe |
Addresse Cellule Voiture |
Groupe 1 |
123 |
B5:H5;B6:H6 |
... |
|
|
Groupe 14 |
456 |
B19:H19;B20:H20 |
Quand l'utilisateur.trice appuit sur le bouton, tu vas voir dans la feuille si le mot de passe correspond et tu récupères l'adresse des zones concernées et tu les passes à ta fonction de verrouillage.
Cela pourrait être un truc du genre :
1 2 3 4 5 6 7 8 9 10 11 12
| public sub VerrouilleDeverrouille(pstrAdresseZone as string, pblnVerrouille as bolean)
dim rng as range: set rng=thisworkbook.range(pstrAdresseZone)
if pblnVerrouille then
'code pour verrouiller rng
else
'Code pour déverouiller rng
end if
set rng=nothing
end if |
Évidement il faut que ta feuille qui contient les mots de passe soit rendue invisible, en la définissant
VerryHidden en production et si tu as vraiment besoin de sécurité que tes mots de passe soient codés et au minimum que ton code VBA soit protégé par un mot de passe. Attention de communiquer ce mot de passe à une personne de confiance afin de ne pas être le seul dépositaire de cette information.
A+
Partager