verrouillage cellule VBA

AKSooL

XLDnaute Occasionnel
Bonjour

deja , je le dis tout de suite, c est un fichier partagé , donc pas de reponse du genre , deprotege la cellule, reprotege , patati patata :)

En gros, qd une cellule E1 est remplie, je veux que cela empeche la modification des cellules F1-G1-H1
et cela jusqu a la ligne 10

comment faire en VBA , car j ai essayé avec une validation ca marche uniquement si la cellule F/G/H est vide , je ne peux rien ecrire mais si la cellule est remplie ,je peux faire la modif .
En VBA , je ne vois pas comment faire, a part empecher ptet de cliquer dessus ou de dire que la cell est verrouillé des que E1 est remplie , mais je sais pas comment faire , merci



voici mon code , mais ca marche pas a cause que je dois proteger le fichier ( pour la verrouille marche ) et partagé et la bang marche plus

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E11:E100")) Is Nothing Then
For i = 7 To 29
If Target <> "" Then Cells(Target.Row, i).Select = False
Next i
End If

End Sub
 
Dernière édition:

AKSooL

XLDnaute Occasionnel
Re : verrouillage cellule VBA

LOL

si ca peut marche ( j en ai deja fait, enfin bref )
y a t il pas moyen au moins de juste empecher la selection des cellules F-G-H ...... qd la cellule E est remplie

genre ceci dans un selectionchange
If Target.Column = 6 Then Cells(Target.Row, i).Select
mais ca c pour toute la colonne, je voudrais faire juste pour la ligne de la ou l on a fait l entrée
 

Excel-lent

XLDnaute Barbatruc
Re : verrouillage cellule VBA

Bonsoir le fil,

Donc les macro ci-dessous, bien que répondant à tes critères

-> "saisie impossible..."
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 5 And Target.Row <= 10 And Target.Value <> "" Then
      ActiveSheet.Unprotect Password:="test"
      Cells.Locked = False
      Range("F" & Target.Row & ":H" & Target.Row).Locked = True
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="test"
  End If
End Sub

-> "saisie et sélection impossible..."
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 5 And Target.Row <= 10 And Target.Value <> "" Then
      ActiveSheet.Unprotect Password:="test"
      Cells.Locked = False
      Range("F" & Target.Row & ":H" & Target.Row).Locked = True
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, ActiveSheet.EnableSelection = xlUnlockedCells, Password:="test"
  End If
End Sub

te conviennent pas?
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : verrouillage cellule VBA

Re :),
Bonsoir Excel-lent, j'ai parlé un peu vite parce que j'avais pris le problème dans ton sens, or .protec ne passera pas dans un classeur partagé.
Par contre, suite à l'hypothèse d'AKSool d'empêcher la sélection, je pense que
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("F1:H10")) Is Nothing Then Exit Sub
If Cells(Target.Row, "E") = "" Then Exit Sub
Cells(Target.Row, "E").Select
End Sub
devrait marcher.
Bonne soirée :cool:
 

Discussions similaires

Réponses
4
Affichages
165

Statistiques des forums

Discussions
312 221
Messages
2 086 388
Membres
103 199
dernier inscrit
ATS1