Re : Mettre un mot de passe sur une plage en fonction de la valeur d'une cellule
Bonjour,
En continuant mes tests, je rencontre un problème.
Lorsque je sélectionne une case d'option et qu'ensuite j'en selectionne une autre, la macro plante car ma cellule D6 est verrouillé.
J'ai donc essayé de la dévérouiller en cliquant dessus, format, protection, "dévérouille". => ça ne fonctionne pas, elle se vérouille quand même.
J'ai donc essayé de mettre un code juste avant la reprotection de la feuille:
'macro permettant les filtres avec les cases d'option
Private Sub Worksheet_Calculate()
'Les cellules "D6" et "D7" sont en police blanches, "D6" doit toujours être dévérouillées
Dim colonne, critere
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
Me.Unprotect "citedia"
Me.AutoFilterMode = False 'affiche tout
If [D6] < 9 Then
colonne = Array(11, 11, 8, 8, 9, 9, 10, 10)
critere = Array("A valider/B. BUDET", 0, "A contrôler*", 0, _
"A contrôler/Compta", 0, "A signer/F. DEMAY", 0)
[A16:L1004].AutoFilter colonne([D6] - 1), critere([D6] - 1)
End If
Range("D6").Select 'Dévérouille D6
Selection.Locked = False
Selection.FormulaHidden = False
Me.Protect "citedia"
Application.EnableEvents = True 'réactive les évènements
End Sub
Cela fonctionne lorsque je change de case d'option, par contre si j'ai une case d'option cochée qui est autre que "Afficher toutes" les commandes" (donc base complètement défiltrée), L'ajout d'une nouvelle commande plante. La macro s'arrête sur sur "Range("D6").select du code ci-dessus
Je ne comprends pas vraiment pourquoi??