New Validation option to format 1st letter as Capital letter

G

Guest

Hi, I had tried to post general question to find if there is a way to auto
default 1st letter of a word to be capital letter but so far not possible.
Pls see reply below.

AFAIK, this does not exist.
But you can copy/Paste special values from calculated column back into
original column.

Cheers,
--
AP

Jeff said:
Hi Ardus

Thanks for you reply. Your recommended method is to use formula
=PROPER(A1).
It's referring to another cell, update to correct format and appear in
existing cell. Is there a way to update to correct format immediately in
existing cell withot referring to another field ? Some kind of excel
validation function.

Jeff.


----------------
This post is a suggestion for Microsoft, and Microsoft responds to the
suggestions with the most votes. To vote for this suggestion, click the "I
Agree" button in the message pane. If you do not see the button, follow this
link to open the suggestion in the Microsoft Web-based Newsreader and then
click "I Agree" in the message pane.

http://www.microsoft.com/office/com...6-3c1b0847dd78&dg=microsoft.public.excel.misc
 
B

Bob Phillips

Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "A1:H10"

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
If Not IsNumeric(.Value) Then
If Not .HasFormula Then
.Value = Application.Proper(.Value)
End If
End If
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub

'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click on the sheet tab, select
'the View Code option from the menu, and paste the code in.





--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

Jeff said:
Hi, I had tried to post general question to find if there is a way to auto
default 1st letter of a word to be capital letter but so far not possible.
Pls see reply below.

AFAIK, this does not exist.
But you can copy/Paste special values from calculated column back into
original column.

Cheers,
--
AP




----------------
This post is a suggestion for Microsoft, and Microsoft responds to the
suggestions with the most votes. To vote for this suggestion, click the "I
Agree" button in the message pane. If you do not see the button, follow this
link to open the suggestion in the Microsoft Web-based Newsreader and then
click "I Agree" in the message pane.
http://www.microsoft.com/office/com...6-3c1b0847dd78&dg=microsoft.public.excel.misc
 
G

Guest

Hi Bob,

Excellent solution. My salute to an expert..THank you very much.

Best Regards..Jeff
 
G

Guest

Hi Bob,

Assuming there a company name 'company ABC private limited'. by using VBA
below, it will change to 'Company Abc Private Limited'. Please advise how to
maintain ABC unchange. Eg. Company ABC Private Limited.

Thanks.

Jeff.
 
B

Bob Phillips

Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "H1:H10"
Dim i As Long
Dim tmp As String
Dim fCapital As Boolean

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
If Not IsNumeric(.Value) Then
If Not .HasFormula Then
fCapital = True
For i = 1 To Len(.Value)
If fCapital Then
tmp = tmp & UCase(Mid(.Value, i, 1))
fCapital = False
Else
tmp = tmp & Mid(.Value, i, 1)
fCapital = Mid(.Value, i, 1) = " "
End If
Next i
.Value = tmp
End If
End If
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 
G

Guest

Thanks Bob.

Bob Phillips said:
Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "H1:H10"
Dim i As Long
Dim tmp As String
Dim fCapital As Boolean

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
If Not IsNumeric(.Value) Then
If Not .HasFormula Then
fCapital = True
For i = 1 To Len(.Value)
If fCapital Then
tmp = tmp & UCase(Mid(.Value, i, 1))
fCapital = False
Else
tmp = tmp & Mid(.Value, i, 1)
fCapital = Mid(.Value, i, 1) = " "
End If
Next i
.Value = tmp
End If
End If
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top