View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
SP SP is offline
external usenet poster
 
Posts: 10
Default Damsel Needs Assitance with Proper_Case Macro

Tom, This was my original posting:

Sub Proper_Case()
' Loop to cycle through each cell in the specified range.
For Each x In Range("C1:C5")
' There is not a Proper function in Visual Basic for Applications.
' So, you must use the worksheet function in the following form:
x.Value = Application.Proper(x.Value)
Next
End Sub


I need to modify it to do the whole spreadsheet. I am VBA Phobia and have
been working with it for over 30 minutes. PLEASE HELP!!!

I just need to macro to change all cells that have uppercase to reflect
capitalizing the first letter of each word in the cell.



This was straight from Microsoft's website and I didn't know how to specify
which range for it to change. I don't know anything about VBA, so what ever
I kept doing, it kept giving me error messages left and right. So I thought
I would just start from the beginning and not worry about putting the code
that I had butchered in my efforts to make it work for me.


"Tom Ogilvy" wrote in message
...
Strange reaction

You asked:
I need to modify it to do the whole spreadsheet.
I just need to macro to change all cells that have uppercase to reflect
capitalizing the first letter of each word in the cell.


(I will admit, I interpreted Uppercase to mean all upper case. )

which my code does with no modification and is faster. Actually I don't
see where Julie's code changed anything from the original except to use
strconv - so either version (your original or Julies) would pretty much

work
the same.

What was your actual purpose in posting? i.e. how did use of strconv

change
anything?



--
Regards,
Tom Ogilvy

"SP" wrote in message
...
Tom, thanks for the information, much appreciated.

Sheri


"Tom Ogilvy" wrote in message
...
Unless that is a very old article, the information isn't correct. The

below
should work.

Sub Proper_Case()
' Loop to cycle through each cell in the specified range.
For Each x In
ActiveSheet.UsedRange.SpecialCells(xlConstants,xlT extValues)
if Ucase(x.Value) = x.Value then
x.Value = strconv(x,vbProperCase)
end if
Next
End Sub



to demo from the immediate window:

x = "ABCDE FGHI JKLM NOPQ"
? strconv(x,vbProperCase)
Abcde Fghi Jklm Nopq

Anyway, it worked for me.

--
Regards,
Tom Ogilvy

--
Regards,
Tom Ogilvy

"SP" wrote in message
...
Hi all, Looking for some assistance here from a knight in shining

amour.
I
found this macro on Microsoft's KB:

Sub Proper_Case()
' Loop to cycle through each cell in the specified range.
For Each x In Range("C1:C5")
' There is not a Proper function in Visual Basic for

Applications.
' So, you must use the worksheet function in the following

form:
x.Value = Application.Proper(x.Value)
Next
End Sub


I need to modify it to do the whole spreadsheet. I am VBA Phobia

and
have
been working with it for over 30 minutes. PLEASE HELP!!!

I just need to macro to change all cells that have uppercase to

reflect
capitalizing the first letter of each word in the cell.

Thanks So Much

@-------

Sheri