Home |
Search |
Today's Posts |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The following should help-
You should assign names to each of the color ranges rather than using cell addresses so you can insert rows, etc. and not have rewrite your code. I'm assuming you have ranges named "Rg1", "Rg2", etc Also you have to code for users changing more than one cell at a time, like by using Ctrl-Enter. Each cell could be in a different range... Private Sub Worksheet_Change(ByVal Target As Range) ''Don't change the std header Dim iColor As Integer Dim Cell As Range For Each Cell In Target If Not Intersect(Cell, Range("Rg1")) Is Nothing Then Select Case Cell.Value Case Is = 1 iColor = 44 Case 0.98 To 0.9999 iColor = 16 Case 0.96 To 0.9799 iColor = 53 Case 0.9 To 0.9599 iColor = 6 Case Is < 0.9 iColor = 3 Case Else iColor = 0 End Select Cell.Interior.ColorIndex = iColor ElseIf Not Intersect(Cell, Range("Rg2")) Is Nothing Then Select Case Cell.Value ''add new table... Case Is = 1 Case Else iColor = 0 End Select Cell.Interior.ColorIndex = iColor ElseIf Not Intersect(Cell, Range("Rg3")) Is Nothing Then ''.... End If Next End Sub -- Jim "Walter" wrote in message ... |I am new to VBA. I have 6 named ranges which are columns of data. When the | user enters a percentage in column C, 1 of the 5 colors appear denoting | status. I have the following Select Case statement that works well for | column C: | | Private Sub Worksheet_Change(ByVal BESTDel As Range) | Dim icolor As Integer | If Not Intersect(BESTDel, Range("$C$2:$C$26")) Is Nothing Then | Select Case BESTDel | Case Is = 1# | icolor = 44 | Case 0.98 To 0.9999 | icolor = 16 | Case 0.96 To 0.9799 | icolor = 53 | Case 0.9 To 0.9599 | icolor = 6 | Case Is < 0.9 | icolor = 3 | Case Else | icolor = 0 | End Select | BESTDel.Interior.ColorIndex = icolor | End If | End Sub | | Now I want to do the same thing for the other ranges of data in Column D, E, | F, and G. However, the Case statement is different for the range of values | for each color. My next named range for Column D is BESTQual. The inner | part for this range will be: | | Case Is = 1# | icolor = 44 | Case 0.9980 To 0.9999 | icolor = 16 | Case 0.9955 To 0.9979 | icolor = 53 | Case 0.98 To 0.9954 | icolor = 6 | Case Is < 0.98 | icolor = 3 | Case Else | icolor = 0 | | Each column will have different data values for the same colors but each | column is different criteria that is being looked at. The user inputs a | number and a color appears depending upon which Case statement applies. If | you need more info let me know. Thanks! |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Combine multiple ranges into one worksheet | Excel Discussion (Misc queries) | |||
Multiple worksheet named ranges to PDF | Excel Programming | |||
Printing multiple ranges on one worksheet | Excel Discussion (Misc queries) | |||
How do I auto-filter multiple ranges on one worksheet? | Excel Worksheet Functions | |||
Multiple Print Ranges on one Worksheet | Excel Worksheet Functions |