OVH Cloud OVH Cloud

Aide sur macro

1 réponse
Avatar
Caroline L.
Bonjour à tous,

J'ai posté une question la semaine dernière "Protection d'une plage x"...
Merci à tous ceux qui ont répondu. Il me reste par contre une petite
interrogation avec une macro fournie par AnonymousA (gros remerciements à
lui). Celle-ci fonctionne très bien Sauf à un endroit : Lorsque je remets la
protection sur la feuille, la dernière cellule (celle où je me trouve
lorsque je ré-applique le mot de passe) cette dernière cellule n'est pas
protégée... je peux entrer du
texte mais qu'une seule fois. Si je me déplace et que je reviens dans cette
cellule, là c'est correct, elle est protégée. Avez-vous une idée de ce qui
se passe ?
Voici donc la macro :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim ws As Worksheet
Set ws = ActiveSheet
Set plage = Union(Range("B1"), Range("D9:J22"), Range("D26:J39"),
Range("D43:J45"))

If ws.ProtectContents Then
ws.Unprotect "motdepasse"
plage.Locked = True
ws.Protect "motdepasse"
Else
plage.Locked = False
Application.EnableEvents = False

If Not Intersect(Target, plage) Is Nothing Then
MsgBox "vous êtes autorisé à selectionner ces cellules"
Else
MsgBox "vous n'êtes pas autorisé à selectionner ces cellules"
Range("B1").Select
End If
Application.EnableEvents = True

End If

End Sub


Merci beaucoup
Caroline

1 réponse

Avatar
anonymousA
bonjour,

à rajouter au module de feuille pour eviter la possibilité de saisie sur la
cellule active après changement
Private Sub Worksheet_Change(ByVal Target As Range)

Set ws = ActiveSheet
If ws.ProtectContents Then
ws.Unprotect "cc"
Target.ClearContents
ws.Protect "cc"
End If

End Sub

Par contre, les procédures communiquées ne permettent en rien de se prémunir
contre la copie ou le couper par drag and drop au delà de la zone restreinte.

A+


Bonjour à tous,

J'ai posté une question la semaine dernière "Protection d'une plage x"...
Merci à tous ceux qui ont répondu. Il me reste par contre une petite
interrogation avec une macro fournie par AnonymousA (gros remerciements à
lui). Celle-ci fonctionne très bien Sauf à un endroit : Lorsque je remets la
protection sur la feuille, la dernière cellule (celle où je me trouve
lorsque je ré-applique le mot de passe) cette dernière cellule n'est pas
protégée... je peux entrer du
texte mais qu'une seule fois. Si je me déplace et que je reviens dans cette
cellule, là c'est correct, elle est protégée. Avez-vous une idée de ce qui
se passe ?
Voici donc la macro :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim ws As Worksheet
Set ws = ActiveSheet
Set plage = Union(Range("B1"), Range("D9:J22"), Range("D26:J39"),
Range("D43:J45"))

If ws.ProtectContents Then
ws.Unprotect "motdepasse"
plage.Locked = True
ws.Protect "motdepasse"
Else
plage.Locked = False
Application.EnableEvents = False

If Not Intersect(Target, plage) Is Nothing Then
MsgBox "vous êtes autorisé à selectionner ces cellules"
Else
MsgBox "vous n'êtes pas autorisé à selectionner ces cellules"
Range("B1").Select
End If
Application.EnableEvents = True

End If

End Sub


Merci beaucoup
Caroline