protection cellule en fonction de valeur d'une autre

  • Initiateur de la discussion Initiateur de la discussion cookie57
  • 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 !

C

cookie57

Guest
Bonjour le forum,
dans un fichier je souhaite protéger une cellule si le contenu d'une autre est égale à un certain critère.
Ex : si B2="oui" alors je protége la cellule C3.

avec une mfc je n'y arrive pas, y a t il moyen de faire autrement?
d'avance merci
 
Re : protection cellule en fonction de valeur d'une autre

Bonjour cookie57,

Une macro VBA fera très bien l'affaire, mais quel est l'évènement qui doit la déclencher? Modification de B2? Ouverture du classeur?

Le code de protection est simple :

If range("B2").value = "oui" then cells(3,3).locked = true
 
Re : protection cellule en fonction de valeur d'une autre

Bonjour cookie, coriolan

coriolan, il faut de plus activer la protection de la feuille

cookie, si c'est une entrée directe dans la cellule B2 :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("B3"), Target) Is Nothing Then
Select Case Range("B3").Value
Case Is = "oui"
ActiveSheet.Unprotect
Cells.Locked = False
Range("C3").Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Case Else
ActiveSheet.Unprotect
Cells.Locked = True
End Select
End If
End Sub

si c'est issu d'une formule :

Private Sub Worksheet_Calculate()
Select Case Range("B3").Value
Case Is = "oui"
ActiveSheet.Unprotect
Cells.Locked = False
Range("C3").Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Case Else
ActiveSheet.Unprotect
Cells.Locked = True
End Select
End Sub
 
Re : protection cellule en fonction de valeur d'une autre

Bonjour à tous

pour bloquer une cellule, son verouillage n'est pas suffisant, il faut proteger la feuille et en premier lieu, penser à la deproteger

Sheets("Feuil1").unprotect
if ucase(range("B2")) = "OUI" then range("C2").locked = true else range("C2").locked = false
sheets("Feuil1").protect
 
Re : protection cellule en fonction de valeur d'une autre

merci a tous!!!
j'ai utilisé et adapté le code de bhbh, ca roule pas mal...
est ce que quelqu'un une solution qd il y a x ligne??
par ex de B2 à Bx, si B2 = "oui" alors C2 protégée, si B3 ="oui" alors C3 protégée.....
je pense qu'il doit y avoir moyen de faire une boucle
 
Re : protection cellule en fonction de valeur d'une autre

Re-,
En bien plus simple qu'un code VBA :

Tu sélectionne tes cellules (ex : de C2 à C20)
tu fais Données/Validation, dans Autoriser, tu choisis "Personnalisé" et dans Formules tu entres : =B2<>"oui"
Si B2=oui, tu peux plus écrire dans C2
 
- 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
17
Affichages
567
Retour