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