Need help modifying VB script

D

DTLay

I am working on a script to change the background color of a cell when it is
double-clicked. So far, I have this script, which works fine.....

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel
As Boolean)


If Target.Interior.ColorIndex = 50 Then

Target.Interior.ColorIndex = xlNone
Else

Target.Interior.ColorIndex = 50
End If



Cancel = True


End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

End Sub

I am trying to modify this so that the target color changes based on the
cell value. For instance, this is a grading sheet, and I'd like all scores
of 1 or 2 to change to red, while 3 and 4 change to green. I've tried using
an IF THEN statement around the above code to look at the value of the cell
but it isn't working, likely because of the coding. I wrote:

IF Target.Value > "2" Then...(original code)
Else...(Original code with different color value)

I am getting an error running this, and am hoping someone can tell me why.
I haven't programmed script in a long time, so I'm hoping it's a simple fix.

Thanks!
 
R

Rick Rothstein \(MVP - VB\)

It would be useful if you posted your actual code rather than an outline of
it (kind of hard to tell where your mistake is if we can't see your actual
code) and, if you are getting an error, telling us what error it is (kind of
hard to know what VB is complaining about if we can't see what it is
saying).

Rick
 
F

FSt1

hi
this should work
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel
As Boolean)
If Target.Value = "" Then
Target.Interior.ColorIndex = xlnone
Else
If Target.Value = 1 Or Target.Value = 2 Then
Target.Interior.ColorIndex = 3
Else
If Target.Value = 3 Or Target.Value = 4 Then
Target.Interior.ColorIndex = 4
End If
End If
End If
End Sub

however, you may find it easier to use conditional formating.
highlight your range to color change.
on the menu bar....
formats>conditional formating
when the conditional formating box come up...2 conditions.
if cell value is......less than or equal to......2 format to red
click the add button
if cell vaue is......greater than or equal to.....3 format to green.

the cell will change color as you enter or change the data. no code needed.

Regards
FSt1
 
F

FSt1

hi
found a bug in conditional formating. need 3 conditons
1. if cell value is....equal to.......0 no formating
click the add button
2. if cell value is......less than or equal to......2 format to red
click the add button
3. If cell vaue is......greater than or equal to.....3 format to green

sorry about that.

regards
FSt1
 
R

Rick Rothstein \(MVP - VB\)

If your BeforeDoubleClick event code answer the OP's question, then this
slightly simplified code should also work...

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Target.Interior.ColorIndex = Choose(Val(Target.Value), 3, 3, 4, 4)
End Sub

Rick
 
R

Rick Rothstein \(MVP - VB\)

Of course, it would have been nice if I had used the same procedure header
that you did...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel
As Boolean)
On Error Resume Next
Target.Interior.ColorIndex = Choose(Val(Target.Value), 3, 3, 4, 4)
End Sub

Rick
 

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