Hi, icevinson,

there is not data in the range of B24 tro B40 which could trigger any code as well as the value of the cells is set to 0 (code gets triggered but will not copy). Please mind that there may only be one procedure with this name behind any sheet. To match with the sample sheet I adjusted the range:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow As Long

If Not Intersect(Target, Range("B2:B18")) Is Nothing Then
    If Range("B" & Target.Row).Value <> "0" And Range("B" & Target.Row).Value <> "" Then
        With Worksheets("Task Summary")
            LastRow = .Range("A" & Rows.Count).End(xlUp).Row
            .Range("A" & LastRow + 1).Resize(1, 3).Value = Range("A" & Target.Row).Resize(1, 3).Value
            .Range("D" & LastRow + 1).Value = Range("H" & Target.Row)
            .Range("E" & LastRow + 1).Value = Range("M" & Target.Row)
        End With
    End If
End If
End Sub
Ciao,
Holger