Wee programming query

  • Thread starter Thread starter sparky3883
  • Start date Start date
S

sparky3883

Hey All

I am having a wee programming problem and was wondering if anyone coul
please help me.

I have a template spreadsheet which contains 10 colums (A - J) and 4
Rows. I have created most of my coding using Visual Basic Editor an
wanted to add one more bit of coding but can't quite figure it out an
was wondering if someone could please help me.

Here's my prob!

I am wanting to be able to enter a certain letter into any cell i
Column C and have that letter represented by a certain number in th
same row but in Coulmn D.

For example;
If i enter the letter 'E' into Column C, Row 33, i would like th
number 7.8 to be shown in Column D Row 33.

At the moment i have to enter it all manually and was just wondering i
it is possible to enter some coding where it will be able to do it fo
me to save time.

The letters and numbers i need representing are:

E = 7.8
L = 8
K = 4
Q = 6

So, if i enter K into a certain Row in column C, it'll automatically b
shown as 4 in the same Row but in column D.

Is this possible to do as it will save me time.

Many thanks in advance for your hel
 
For a non-programming alternative you could take a look at the Vlookup
function. Using it you could create a simple lookup table that will do what
you want.

For a VBA solution, paste the following into the code module for the
worksheet (right-click the sheet tab, choose View Code and paste it there):

Private Sub Worksheet_Change(ByVal Target As Range)

Dim r As Range

If Target.Column = 3 Then
Set r = Target.Offset(0, 1)
Select Case Target
Case "E"
r = 7.8
Case "L"
r = 8
Case "K"
r = 4
Case "Q"
r = 6
End Select
End If

End Sub

hth,

Doug
 
I was experimenting with something related. Just something different...

Select Case Target
Case "E", "L", "K", "Q"
rng = (23447120 Mod (Asc(Target) + 10)) / 10
Case Else
' ??

--
Dana DeLouis
Using Windows XP & Office XP
= = = = = = = = = = = = = = = = =


Doug Glancy said:
For a non-programming alternative you could take a look at the Vlookup
function. Using it you could create a simple lookup table that will do what
you want.

For a VBA solution, paste the following into the code module for the
worksheet (right-click the sheet tab, choose View Code and paste it there):

Private Sub Worksheet_Change(ByVal Target As Range)

Dim r As Range

If Target.Column = 3 Then
Set r = Target.Offset(0, 1)
Select Case Target
Case "E"
r = 7.8
Case "L"
r = 8
Case "K"
r = 4
Case "Q"
r = 6
End Select
End If

End Sub

hth,

Doug

<snip>
 
Hey Dana,

Very cool! I understand the code, but I'm curious to understand the thought
process (backwards reasoning?) that got you there. I don't really see any
relationship between these letters and numbers.

I also tweaked my code a little so that it handles ranges of more than one
cell. Also, if a cell with one of the 4 values is cleared or changed the
corresponding numbers are cleared:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range
Dim c As Range

For Each c In Target
If c.Column = 3 Then
Set rng = c.Offset(0, 1)
Select Case c
Case "E", "L", "K", "Q"
rng = (23447120 Mod (Asc(c) + 10)) / 10
Case Else
rng.Clear
End Select
End If
Next c

End Sub

Doug
 

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

Back
Top