FORMULA

G

Guest

I need a formula that performs the following:

When the user enters a letter I want a number displayed. i.e. A=1, b=2
etc....

So if the user would enter BAD.......214 would be displayed/returned.
 
G

Guest

The following assumes you want the results as a text string; if you want an
actual number you could use the Val() function (or VALUE in a worksheet
function):

Public Function AlphaToNum(Alpha As String) As String
Dim UCAlpha As String, i As Integer
AlphaToNum = ""
UCAlpha = UCase(Alpha)
For i = 1 To Len(UCAlpha)
AlphaToNum = AlphaToNum & Asc(Mid(UCAlpha, i, 1)) - 64
Next i
End Function
 
B

Bob Phillips

'-----------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'-----------------------------------------------------------------
Const WS_RANGE As String = "A1"
Dim i As Long
Dim tmp As String

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
For i = 1 To Len(Target.Value)
Select Case Mid(Target.Value, i, 1)
Case "A": tmp = tmp & "1"
Case "B": tmp = tmp & "2"
Case "C": tmp = tmp & "3"
'etc
End Select
Next i
Target.Value = tmp
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

(remove xxx from email address 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