Don't you just want this code?

Private Sub Worksheet_Change(ByVal Target As Range)
    
    On Error GoTo wsc_exit

    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    If Target.Cells.Count = 1 Then
    
        If Not Intersect(Range("E3:E1000, J2:O1000,R2:AB1000"), Target) Is Nothing Then
    
            Target.Value = UCase(Target.Value)
        End If
    End If
    
wsc_exit:
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub