View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Gary Keramidas[_2_] Gary Keramidas[_2_] is offline
external usenet poster
 
Posts: 364
Default Problem running row color macro

forgot to mention. if you change the range to range("K:K").select, it will
actually format the cells your text is in to the colors you want.

--


Gary


"Gary Keramidas" wrote in message
...
just use this macro. it will format column e to change to the colors you
want. if k1 = "ok", e1 will be green, if k1 = "Check $", e1 will be
yellow, if k1 is an error, e1 will be red.

change the range to reflect the column you want



Sub Set_Your_Color()
'
Range("E:E").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression,
Formula1:="=K1=""OK"""
Selection.FormatConditions(1).Interior.ColorIndex = 50
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=K1=""Check $"""
Selection.FormatConditions(2).Interior.ColorIndex = 6
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=(ISERROR(K1))"
Selection.FormatConditions(3).Interior.ColorIndex = 3
End Sub
--


Gary


"cralston" wrote in message
...
Thanks for the suggestion, but that's not what I'm trying to do. I'm
trying
to fill the cell, not do borders.

"Gary Keramidas" wrote:

why couldn't you use something like conditional formatting: just change
my
range and cell value to what want


Range("B8:F8").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="2" With
Selection.FormatConditions(2).Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.FormatConditions(2).Borders(xlRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.FormatConditions(2).Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.FormatConditions(2).Borders(xlBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.FormatConditions(2).Interior.ColorIndex = 36
End With

--


Gary


"cralston" wrote in message
...
I created a macro in VBA to color rows based on the value of column K
in
each
row.

It works using a test file with the required values typed in.
However, in
the file that it NEEDS to work in, those values are the result of an
IF
function.

Here is my code, does anybody have any ideas? I think it probably has
to
do
with the way those values are being generated and not the code...

Sub Update_Report_Colors()

Dim i As Integer

i = 11

' Will color the cells so long as there is a value entered in column K
Do While Not IsEmpty(Columns(11).Cells(i))

If ActiveSheet.Columns(11).Cells(i) = "OK" Then
'sets color to green
Range(Columns(1).Cells(i), Columns(11).Cells(i)).Select

With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
End If

If ActiveSheet.Columns(11).Cells(i) = "Check $" Then
' sets color to yellow
Range(Columns(1).Cells(i), Columns(11).Cells(i)).Select

With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If

If ActiveSheet.Columns(11).Cells(i) = "#N/A" Then
'sets color to red
Range(Columns(1).Cells(i), Columns(11).Cells(i)).Select

With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If

i = i + 1
Loop


End Sub