protection cellule en fonction de valeur d'une autre

cookie57

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

Coriolan

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

Cousinhub

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

wilfried_42

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

cookie57

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

Cousinhub

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

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom