Grazie. Ho risolto aggiungendo anche un controllo sul range e sul fatto che la cella non contenga formule

codice:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Target, Range("D6:E400")) Is Nothing) Then
    With Target
        If Not .HasFormula Then
            .Value = UCase(.Value)
        End If
    End With
End If
End Sub