How about
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Not Intersect(Target, Range("D:D,E:E,F:F,I:I")) Is Nothing Then
        Application.EnableEvents = False
        Target.Value2 = Application.WorksheetFunction.Proper(Target)
        Application.EnableEvents = True
    ElseIf Not Intersect(Target, Range("C:C,J:J")) Is Nothing Then
         Application.EnableEvents = False
        Target.Value = UCase(Target.Value)
        Application.EnableEvents = True
    End If
End Sub