Bonsoir Djodjo, bonsoir le forum,
Impossible d'afficher l'UserForm en entier avec la procédure AfterUpdate que tu utilises ! J'ai dû la remplacer par la procédure Change. Mais l'à n'est pas le propos...
Je te propose un exemple de code suivant pour "protégér" ton bouton Enregister.
Private Sub CommandButton1_Click()
Dim MDP As Variant 'déclare la variable MDP
MDP = Application.InputBox("Tapez le mot de passe.", Type:=2)'définit la variable MDP
If MDP = False Or MDP = "" Then Unload Me 'si bouton [Annuler] ou boîte d'entrée non renseignée, ferme l'UserForm
If MDP = "TON_MOT_DE_PASSE" Then (mot de passe à adapter bien sûr) 'si MDP correspond au mot de passe
For i = 1 To 26 '26 egal le nombre de case à cocher
Cells(l, i + 4) = IIf(Controls("CheckBox" & i) = 0, "", "ü")
Next
Cells(l, 4) = TextBox1
Else'sinon
Unload Me 'ferme l'UserForm
End If
End Sub
Ça marche super ! Mais... le premier pèlerin venu qui va ouvrir VBE (l'éditeur Visual Basic), pourra lire ton mot de passe... Tu peux certes protéger aussi ton code (VBProject) par un mot de passe mais ce n'est qu'une protection illusoire facilement crackable par un utilisateur averti.
En résumé, si les utilisateurs de ton fichier sont des utilisateurs disons de base, la protection de ton bouton plus la protection de ton code est largement suffisante. Mais tu n'auras jamais un protection super efficace et sûre à 100%... Mais, après tout, même les plus grands ne l'ont pas...