View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.misc
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Conditional formatting in VBA not working

Select Case Target.value
Case Is < 100
Colour = 6
Case Is 500
Colour = 8
Case Is = 700
Colour = 50
Case Is = 850
Colour = 24
End Select

If the target.value = 999, then when the code runs, it'll find that it's 500
and use 8 for the colour. It won't continue to check all the other comparisons.

So try rearranging the checks in a nicer order:

Select Case Target.value
Case Is = 850
Colour = 24
Case Is = 700
Colour = 50
Case Is 500
Colour = 8
Case Is < 100
Colour = 6
End Select

What should happen if the target.value is 499?

Marilyn wrote:

Hello
I'm created the following VBA code to conditional format a section on my
spreadsheet. Below is my test code

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Colour As Integer
If Not Intersect(Target, Range("a1:G75")) Is Nothing Then
Select Case Target
Case Is = "John"
Colour = 6
Case Is = "Mary"
Colour = 8
Case Is = "Jane"
Colour = 50
Case Is = "Bob"
Colour = 24
Case Else
End Select
Target.Interior.ColorIndex = Colour
End If

End Sub
the above code works fine but when I tried to adjust the code to use
numbers instead of words - it does not work.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Colour As Integer
If Not Intersect(Target, Range("a1:G75")) Is Nothing Then
Select Case Target
Case Is < 100
Colour = 6
Case Is 500
Colour = 8
Case Is = 700
Colour = 50
Case Is = 850
Colour = 24
Case Else
End Select
Target.Interior.ColorIndex = Colour
End If

End Sub

Thanks in advance


--

Dave Peterson