A couple of small changes:
Option Explicit
Dim M As String
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name <> "Total" And Target.Count = 1 Then
If Target.Column = 2 And IsDate(Target) Then
M = Left(MonthName(Month(Target)), 3)
If Sh.Name = M Then Exit Sub
Application.EnableEvents = False
Call seifeddine(Target)
Dim r As Long: r = Target.Row
Sh.Unprotect: With Sh 'SKIP K,P And V
.Cells(r, 1).Resize(1, 10).Value = ""
.Cells(r, 12).Resize(1, 4).Value = ""
.Cells(r, 17).Resize(1, 5).Value = ""
.Cells(r, 23).Resize(1, 2).Value = ""
End With
Application.EnableEvents = True: End If: End If
End Sub
Sub seifeddine(T As Range): Dim r As Long, ws As Worksheet
Set ws = Sheets(M)
r = ws.Range("A" & Rows.Count).End(xlUp).Row + 1
ws.Unprotect
Application.DisplayAlerts = False
T.Offset(0, -1).Resize(1, 24).Copy ws.Cells(r, 1)
Application.DisplayAlerts = True
ws.Protect
End Sub
Bookmarks