Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As String
Dim nblig As String
Dim DerLigne As String
Dim i As Byte
ActiveSheet.Unprotect
On Error Resume Next
If Not Intersect(Target, Range("B5:B500")) Is Nothing Then Target = UCase(Target)
If Not Intersect(Target, Range("C5:C500")) Is Nothing Then Target = LCase(Target)
Application.Volatile
Application.ScreenUpdating = False
On Error Resume Next
If Left(Target.Address, 2) = "$M" Then
If Target.Value = "X" Or Target.Value = "x" Then
lig = Target.Row
nblig = Sheets("Archives").Range("B65535").End(xlUp).Row + 1
For i = 2 To 14
Sheets("Archives").Cells(nblig, i).Value = Cells(lig, i).Value
Next i
Rows(lig).Delete Shift:=xlUp
End If
End If
Sheets("Saint").Cells(1, 1).Activate
Application.ScreenUpdating = True
Sheets("Archives").Range("a65535").End(xlUp) = Now
ActiveSheet.Protect
End Sub