1. You should use the[#] icon to insert CODE tags and then paste ypur macro between them
2. These don't make sense since D-V get cleared regardless of the C
If Range("C4") = "" Then Range("D4:V4").ClearContents
If Range("C4") <> "" Then Range("D4:V4").ClearContents
3. You should disable event handling when you're changing the WS from inside an event handler
4. GUESSING that you want D-V changed in the row where C is. This clears D-V regardless of the contents of the corresponding C
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
If Intersect(Target, Range("C4:C103")) Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each r In Intersect(Target, Range("C4:C103")).Cells
r.Offset(0, 1).Resize(1, 19).ClearContents
Next
Application.EnableEvents = True
End Sub