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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
à 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