Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Bloquer une plage de cellules en fonction d'une cellule

Leskwal

XLDnaute Occasionnel
Bloquer une plage de cellules en fonction de la valeur d'une cellule

Bonjour à tous

Je souhaite lorsque la cellule :

Code:
 Range("C20").value = ""

Que la plage de cellules A1:B4 soit bloquée (on ne peut rien inscrire dedans)

et se débloque SI


Code:
 Range("C20").value >= 0

J'ai essayé ça
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("A1:b4")) Is Nothing Then Range("A1").Select

End Sub



Ca ne marche pas

J'ai essayé ça :

Code:
with
Range("A1:b4").locked = true
end with


Marche pas non plus


Quelqu'un aurait-il une solution ?


D'avance merci

Pascal
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Bloquer une plage de cellules en fonction d'une cellule

Bonjour,

Essayer :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:B4")) Is Nothing Or Range("C20") <> "" Then Exit Sub
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End Sub

A+
 

Catrice

XLDnaute Barbatruc
Re : Bloquer une plage de cellules en fonction d'une cellule

Bonjour,

Voir l'exemple ci-joint.
 

Pièces jointes

  • Classeur1.xls
    24 KB · Affichages: 397
  • Classeur1.xls
    24 KB · Affichages: 401
  • Classeur1.xls
    24 KB · Affichages: 403

job75

XLDnaute Barbatruc
Re : Bloquer une plage de cellules en fonction d'une cellule

Re et salut Catrice,

J'avais oublié la condition C20>=0, écrire donc :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:B4")) Is Nothing Then Exit Sub
On Error Resume Next
If IsError(1 * ("-" & Range("C20"))) Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub

On Error... pour le cas d'une valeur d'erreur en C20

A+
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : Bloquer une plage de cellules en fonction d'une cellule

Bonjour,



Il faut que la macro suivante soit mise au niveau de la feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Test
End Sub

Et que la macro :
Sub Test()
ActiveSheet.Protect Contents:=False
If Range("C20") = "" Then
Range("A1:B4").Locked = True
Else
Range("A1:B4").Locked = False
End If
ActiveSheet.Protect Contents:=True
End Sub

Soit dans un module (ou dans la feuille)


Ou encore mettre cette macro dans le feuille :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Protect Contents:=False
If Range("C20") = "" Then
Range("A1:B4").Locked = True
Else
Range("A1:B4").Locked = False
End If
ActiveSheet.Protect Contents:=True
End Sub
 

temprano

XLDnaute Nouveau
Re : Bloquer une plage de cellules en fonction d'une cellule

Bonjour,

çà marche bien mais j'ai deux questions bon le dernier post date de 2008 mais je tente quand même) :

1. ma feuille est protégée par un mot de passe : pourquoi le message "Otez la protection" apparait ? J'entre le mdp, çà fonctionne et la feuille semble rester protégée... donc je ne comprends pas trop

2. serait-il possible de colorer en plus les cellules qui deviennent bloquées ?

d'avance merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…