Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vérouillage de plages en fonction de la valeur d'une cellule

2 réponses
Avatar
Zebulion
Bonjour à tous
Voilà mon pb:
J'ai des cellules à renseigner (ou non) en fonction de la valeur de la
cellule B de la ligne (3 valeurs possibles pour le moment).
J'ai créé des mises en formes conditionnelles (motif grisé pour les plages
'non modifiables') pour chacune des plages à saisir ou non selon la cel B.
Cela marche très bien.

Cependant, je voudrais vérouiller les plages pour en empêcher la saisie ( et
ouvrir ainsi plus de 3 conditions comme dans les mef contitionelles caren
fait j'ai 6 valeurs mais pour créer des MEF conditionelles je les ai
regroupées par catégorie)
Je ne peux que décider de la protection par Format de cellulle sans
condition et je n'ai rien trouvé dans l'aide

Auriez-vous une idée pour me permettre de vérouller ou non différentes
plages selon la valeur de la cellule B???
J'imagine que je ne suis pas le premier à me poser la question...
J'ai très peu pratiqué les macros et VB jusque là, mais voilà peut-être une
bonne occasion de m'y mettre...

Merci d'avance pour votre aide
--
Cordialement,
Philippe

La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que l'on ne sait pas pouquoi
(A.S.)

---****----*****-----*****-----****----*****-----*****-----*****

2 réponses

Avatar
Daniel
Bonjour.
Si j'ai tout compris...
La macro suivante :
1. déprotège la feuille (mot de passe "toto")
2. déverrouille l'ensemble des cellules.
3. teste l'ensemble des cellules B1:B100
4. Si Bx=1, Ax est verrouillée
5. et Ax est colorée en rouge
6. protège la feuille (mot de passe "toto")

Sub test()
Dim c As Range
ActiveSheet.Unprotect Password:="toto"
Cells.Locked = False
For Each c In Range("A1:A100")
If c.Offset(0, 1) = 1 Then
c.Locked = True
c.Interior.ColorIndex = 3
End If
Next c
ActiveSheet.Protect Password:="toto"
End Sub

Cordialement.
Daniel
"Zebulion" a écrit dans le message de news:

Bonjour à tous
Voilà mon pb:
J'ai des cellules à renseigner (ou non) en fonction de la valeur de la
cellule B de la ligne (3 valeurs possibles pour le moment).
J'ai créé des mises en formes conditionnelles (motif grisé pour les plages
'non modifiables') pour chacune des plages à saisir ou non selon la cel B.
Cela marche très bien.

Cependant, je voudrais vérouiller les plages pour en empêcher la saisie
( et ouvrir ainsi plus de 3 conditions comme dans les mef contitionelles
caren fait j'ai 6 valeurs mais pour créer des MEF conditionelles je les ai
regroupées par catégorie)
Je ne peux que décider de la protection par Format de cellulle sans
condition et je n'ai rien trouvé dans l'aide

Auriez-vous une idée pour me permettre de vérouller ou non différentes
plages selon la valeur de la cellule B???
J'imagine que je ne suis pas le premier à me poser la question...
J'ai très peu pratiqué les macros et VB jusque là, mais voilà peut-être
une bonne occasion de m'y mettre...

Merci d'avance pour votre aide
--
Cordialement,
Philippe

La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que l'on ne sait pas pouquoi
(A.S.)

---****----*****-----*****-----****----*****-----*****-----*****





Avatar
JB
On 9 fév, 00:44, "Zebulion" wrote:
Bonjour à tous
Voilà mon pb:
J'ai des cellules à renseigner (ou non) en fonction de la valeur de la
cellule B de la ligne (3 valeurs possibles pour le moment).
J'ai créé des mises en formes conditionnelles (motif grisé pour les plages
'non modifiables') pour chacune des plages à saisir ou non selon la cel B.
Cela marche très bien.

Cependant, je voudrais vérouiller les plages pour en empêcher la sais ie ( et
ouvrir ainsi plus de 3 conditions comme dans les mef contitionelles caren
fait j'ai 6 valeurs mais pour créer des MEF conditionelles je les ai
regroupées par catégorie)
Je ne peux que décider de la protection par Format de cellulle sans
condition et je n'ai rien trouvé dans l'aide

Auriez-vous une idée pour me permettre de vérouller ou non différen tes
plages selon la valeur de la cellule B???
J'imagine que je ne suis pas le premier à me poser la question...
J'ai très peu pratiqué les macros et VB jusque là, mais voilà peu t-être une
bonne occasion de m'y mettre...

Merci d'avance pour votre aide
--
Cordialement,
Philippe

La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que l'on ne sait pas pouquoi
(A.S.)

---****----*****-----*****-----****----*****-----*****-----*****


Bonjour,

Scénario1:Si saisie dans A4>100 B4 non vérrouillé

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A4], Target) Is Nothing And Target.Count = 1 Then
ActiveSheet.Unprotect Password:=""
If [A4] > 100 Then
[B4].Locked = False
[B4].Interior.ColorIndex = 4
Else
[B4].Locked = True
[B4].Interior.ColorIndex = 3
End If
ActiveSheet.Protect Password:=""
End If
End Sub

Scénario2: Si total dans A6>100 B6 non vérrouillé
(la saisie se fait dans A1:A4 - total en A6)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A1:A4], Target) Is Nothing And Target.Count = 1
Then
ActiveSheet.Unprotect Password:=""
If [A6] > 100 Then
[B6].Locked = False
[B6].Interior.ColorIndex = 4
Else
[B6].Locked = True
[B6].Interior.ColorIndex = 3
End If
ActiveSheet.Protect Password:=""
End If
End Sub

http://cjoint.com/?cjjlZoTJ7y

Cordialement JB