Conditional Format

J

Josh O.

I have the following VBA to enter, copy and paste conditional formats. But
it gets stuck at the first ".Add (xlExpression,...)" line.

This is what I want it to do:
If I2 is less than or equal to 60 from today and greater than 30 days from
today and A2 is not blank then highlight A2:J2 color 34...
Or
If I2 is less than or equal to 30 from today and greater than today and A2
is not blank then highlight A2:J2 color 36...
Or
If I2 is less today and A2 is not blank then highlight A2:J2 color 38 and
change font to white...
then copy formula down to last row.

Here is the current code:
With Range("a2:j2").FormatConditions
.Delete
.Add(xlExpression, ,
"=and($i2<=(today()+60),$i2>(today()+30),$a2<>"")").Interior.ColorIndex = 34
.Add(xlExpression, ,
"=and($i2<=(today()+30),$i2>(today()),$a2<>"")").Interior.ColorIndex = 36
.Add(xlExpression, ,
"=and($i4<today(),$a2<>"")").Interior.ColorIndex = 38
End With
With Range("a2:j2")
.Copy
Range("a2:j" & Range("j65536").End(xlUp).Row).PasteSpecial
xlPasteFormats
End With
 
J

Josh O.

My apologizes for posting this twice...my browser closed down, I wasn't sure
that the post went through...
 
J

Josh O.

Ok...I figured out the other thing. But now it is entering the row number in
the conditional format incorrectly (off by one row).

For example, in row 2 it enters:
=AND($I3<=(TODAY()+60),$I3>(TODAY()+30),$I3>0)
Instead of:
=AND($I2<=(TODAY()+60),$I2>(TODAY()+30),$I2>0)

Here is the code as of now:
With Range("a2:j2").FormatConditions
.Delete
.Add(xlExpression, ,
"=AND($I2<=(TODAY()+60),$I2>(TODAY()+30),$I2>0)").Interior.ColorIndex = 34
.Add(xlExpression, ,
"=AND($I2<=(TODAY()+30),$I2>(TODAY()),$I2>0)").Interior.ColorIndex = 36
.Add(xlExpression, , "=AND($I2<TODAY(),$I2>0)").Interior.ColorIndex = 38
End With
Range("a2:j2").Copy
Range("a2:j" & Range("a65000").End(xlUp).Row).PasteSpecial xlPasteFormats
 

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