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 :rolleyes:

J'ai essayé ça :

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


Marche pas non plus :D


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+
 

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

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry