Private Sub Worksheet_Change(ByVal Target As Range)
Dim NomOrdi, AdressePlage, i As Variant, plage As Range
NomOrdi = Array("User", "Bernard", "Julie") 'noms des ordinateurs autorisés, à adapter
AdressePlage = Array("A2:A100", "B2:B100", "C2:C100") 'adresses des plages autorisées, à adapter
i = Application.Match(Environ("UserName"), NomOrdi, 0)
Application.EnableEvents = False 'désactive les évènements
If IsError(i) Then MsgBox "Vous n'avez pas le droit de modifier des cellules !", 48: GoTo 1
If Target.Count > 1000 Then MsgBox "Nombre de cellules modifiées trop grand !", 48: GoTo 1
Set plage = Range(AdressePlage(i - 1))
For Each Target In Target
If Intersect(Target, plage) Is Nothing Then MsgBox "Vous n'avez pas le droit de modifier ces cellules !", 48: GoTo 1
Next
GoTo 2
1 Application.Undo
2 Application.EnableEvents = True 'réactive les évènements
End Sub