Jason,
following should work in most situations.
if 1 cell is selected it picks the current region,
else it processes the text values in the selection.
Sub MakeUpper()
Dim c As Range
on error resume next 'to avoid prob if no text cells are found
If TypeName(Selection) <> "Range" Then Beep: Exit Sub
If Selection.Count = 1 Then Selection.CurrentRegion.Select
With Selection.Cells.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each c In .Cells
c = UCase(c)
Next
End With
End Sub
keepITcool
< email : keepitcool chello nl (with @ and .) >
< homepage:
http://members.chello.nl/keepitcool >