You would need to (... that how they all start...)
If you are going to change the value with an Event macro
you should turn off Events. Also while the following does
not limit the scope to constants it will not wipe out formulas
with values. Just for the sake of argument this will not
process column 1 or row 1, you can remove them or change
to something like
If Target.Column <> 4 then Exit Sub
to restrict the capitalization to a zip state code for instance.
(US Postal two letter designation for a State)
More information in
http://www.mvps.org/dmcritchie/excel/proper.htm#upper
My preference is to not have much of anything completely
capitalized to to invoke a regular macro when I want to make
such changes rather than having it done automatically.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'to install -- right-click on the sheettab of the corresponding
' sheet and choose 'view code'. Paste the following procedure
' in the module. -- this is for EVENT macros ONLY.
If Target.Column = 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
Application.EnableEvents = False
Target.Formula = UCase(Target.Formula)
Application.EnableEvents = True
End Sub
Just in case you somehow manage to abend (terminate) this
macro you might have to restore events with a regular macro
'
Sub Fix_Things()
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub
--