ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Conditional Formating on Worksheet Change (https://www.excelbanter.com/excel-programming/365560-conditional-formating-worksheet-change.html)

Barb Reinhardt

Conditional Formating on Worksheet Change
 
I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt

Mark Driscol[_2_]

Conditional Formating on Worksheet Change
 
If you are always going to be changing the colorindex of cells 26
columns to the left of the cell that is changed (e.g., change cell AC2
leads to changing colorindex of cell C2), something like this may work
for you.


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Dim icolor As Integer

Select Case Target.Value
Case 1
icolor = 39
Case 2
icolor = 13
Case 3
icolor = 5
Case 4
icolor = 6
Case 5
icolor = 45
Case Else
icolor = 3
End Select

Target.Offset(0, -26).Interior.ColorIndex = icolor

End Sub


Mark


Barb Reinhardt wrote:
I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt



Dave Peterson

Conditional Formating on Worksheet Change
 
I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt


--

Dave Peterson

Barb Reinhardt

Conditional Formating on Worksheet Change
 
Will this work if the worksheet changes based upon a calculated value in
AB2:AT14?

"Dave Peterson" wrote:

I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt


--

Dave Peterson


Dave Peterson

Conditional Formating on Worksheet Change
 
Nope.

Worksheet_change is an event that fires when someone changes something manually.

You could use the worksheet_Calculate event, though:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub




Barb Reinhardt wrote:

Will this work if the worksheet changes based upon a calculated value in
AB2:AT14?

"Dave Peterson" wrote:

I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt


--

Dave Peterson


--

Dave Peterson

Barb Reinhardt

Conditional Formating on Worksheet Change
 
I changed it to this:

Option Explicit


Private Sub Worksheet_Calculate(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub

and got the following error:
Procedure declaration does not match description of event or procedure
having the same name.

What do I need to change?
"Dave Peterson" wrote:

Nope.

Worksheet_change is an event that fires when someone changes something manually.

You could use the worksheet_Calculate event, though:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub




Barb Reinhardt wrote:

Will this work if the worksheet changes based upon a calculated value in
AB2:AT14?

"Dave Peterson" wrote:

I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt

--

Dave Peterson


--

Dave Peterson


Dave Peterson

Conditional Formating on Worksheet Change
 
Oopsie.

Try changing it to this:

Private Sub Worksheet_Calculate()

(I made the changes, compiled and forgot to change the procedure's name!)

But if you're using these kinds of events, you can always use those dropdowns at
the top of the code window to choose the object and event (worksheet and change
in this case).



Barb Reinhardt wrote:

I changed it to this:

Option Explicit

Private Sub Worksheet_Calculate(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub

and got the following error:
Procedure declaration does not match description of event or procedure
having the same name.

What do I need to change?
"Dave Peterson" wrote:

Nope.

Worksheet_change is an event that fires when someone changes something manually.

You could use the worksheet_Calculate event, though:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub




Barb Reinhardt wrote:

Will this work if the worksheet changes based upon a calculated value in
AB2:AT14?

"Dave Peterson" wrote:

I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

Barb Reinhardt

Conditional Formating on Worksheet Change
 
What would I need to add to change the font color. I'd like font color WHITE
and BLACK. Can I do something like this:

Case Is = 6: iColor = 3: fcolor = 1


"Dave Peterson" wrote:

Nope.

Worksheet_change is an event that fires when someone changes something manually.

You could use the worksheet_Calculate event, though:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub




Barb Reinhardt wrote:

Will this work if the worksheet changes based upon a calculated value in
AB2:AT14?

"Dave Peterson" wrote:

I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt

--

Dave Peterson


--

Dave Peterson


Dave Peterson

Conditional Formating on Worksheet Change
 
Test it out on a small subset of the lines and see what happens!

Barb Reinhardt wrote:

What would I need to add to change the font color. I'd like font color WHITE
and BLACK. Can I do something like this:

Case Is = 6: iColor = 3: fcolor = 1

"Dave Peterson" wrote:

Nope.

Worksheet_change is an event that fires when someone changes something manually.

You could use the worksheet_Calculate event, though:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub




Barb Reinhardt wrote:

Will this work if the worksheet changes based upon a calculated value in
AB2:AT14?

"Dave Peterson" wrote:

I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

Barb Reinhardt

Conditional Formating on Worksheet Change
 
I've got it working. Thanks for your assistance.

"Dave Peterson" wrote:

Test it out on a small subset of the lines and see what happens!

Barb Reinhardt wrote:

What would I need to add to change the font color. I'd like font color WHITE
and BLACK. Can I do something like this:

Case Is = 6: iColor = 3: fcolor = 1

"Dave Peterson" wrote:

Nope.

Worksheet_change is an event that fires when someone changes something manually.

You could use the worksheet_Calculate event, though:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub




Barb Reinhardt wrote:

Will this work if the worksheet changes based upon a calculated value in
AB2:AT14?

"Dave Peterson" wrote:

I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


Dave Peterson

Conditional Formating on Worksheet Change
 
Not too difficult, huh? <vbg

Barb Reinhardt wrote:

I've got it working. Thanks for your assistance.

"Dave Peterson" wrote:

Test it out on a small subset of the lines and see what happens!

Barb Reinhardt wrote:

What would I need to add to change the font color. I'd like font color WHITE
and BLACK. Can I do something like this:

Case Is = 6: iColor = 3: fcolor = 1

"Dave Peterson" wrote:

Nope.

Worksheet_change is an event that fires when someone changes something manually.

You could use the worksheet_Calculate event, though:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long
Dim myCell As Range
Dim myRng As Range

Set myRng = Me.Range("b1:t14").Offset(0, 26)

For Each myCell In myRng.Cells
iColor = -9999
Select Case myCell.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select
If iColor -9999 Then
myCell.Offset(0, -26).Interior.ColorIndex = iColor
End If
Next myCell
End Sub




Barb Reinhardt wrote:

Will this work if the worksheet changes based upon a calculated value in
AB2:AT14?

"Dave Peterson" wrote:

I'd use something like:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iColor As Long

If Target.Cells.Count 1 Then Exit Sub

If Intersect(Target, Me.Range("B1:T14").Offset(0, 26)) Is Nothing Then
Exit Sub
End If

iColor = -9999
Select Case Target.Value
Case Is = 6: iColor = 3
Case Is = 5: iColor = 45
Case Is = 4: iColor = 6
Case Is = 3: iColor = 5
Case Is = 2: iColor = 13
Case Is = 1: iColor = 39
End Select

If iColor -9999 Then
Target.Offset(0, -26).Interior.ColorIndex = iColor
End If

End Sub



Barb Reinhardt wrote:

I've found this macro and I wonder what might need to be changed to do what I
want to do:

http://www.ozgrid.com/VBA/excel-cond...ting-limit.htm

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

The range I want to format is B1:T14 and the formulas I want to use a

To color cell B2: Formula currently in place is

If AB2 =6, Highlight color = 3
If AB2 = 5, Highlight color = 45
IF AB2 =4, Highlight color = 6
If AB2 =3, Highlight color = 5
IF AB2=2, Highlight color = 13
If AB2 = 1, Highlight color = 39

For C2, I'm checking against AC2.

Can someone assist?

Thanks in advance,
Barb Reinhardt

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


All times are GMT +1. The time now is 01:46 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com