Merci chouks.
Il est donc possible, non seulement de verrouiller les cellules mais aussi de les masquer et d'en mettre les caractères en blanc.
Par contre, si on verrouille les cellules sans que la feuille soit protégée, il est possible d'y accéder et donc d'en modifier les propriétés.
Or, si la feuille est protégée au départ, il existe aussi cette syntase
Worksheets("Feuil1").EnableSelection = xlUnlockedCells
Dans ton exemple, la feuille est-elle en permanence protégée ?
Sinon, la solution alternative consisterait à faire un bricolage consistant à déplacer la sélection d'une cellule vers le bas si une cellule "interdite" est sélectionnée, ou d'une colonne s'il s'agit d'une colonne, ou d'une ligne s'il s'agit d'une ligne. Ceci, comme tu le suggères, dans la sub Worksheet_SelectionChange
1 2 3 4 5 6 7 8 9 10
| Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plage()
Plage = Array("$C$14", "$D$13", "$E$12", "$F$11", "$G$15", "$F$19") 'cellules interdites
For i = 0 To UBound(Plage)
If Target.Address = Plage(i) Then
Cells(Target.Row + 1, Target.Column).Select
Exit For
End If
Next
End Sub |
Ce code empêcherait tout modification de la cellule et si les caractères on la même couleur que le fond, de pouvoir les lire
Et un bricolage de plus, un !
A+
NB - A l'attention des paranos
: Ce code n'empêche pas la sélection et la copie d'une plage contenant les cellules "défendues"... et alors là, allez savoir ce que l'espion ira en faire
mais heureusement, il ne sait pas qu'il peut faire ça. Malheureusement, s'il est intelligent et qu'il a déjà fait du vba, il comprendra qu'il y a une astuce. Heureusement, il est fort probable qu'il ne comprenne pas laquelle. Malheureusement...
Partager