View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Selecting cells which do not meet a formatting criteria, and assigning a Range object to these.

This assumes the font color is not produced by conditional formatting.

Dim red_cells as Range
Dim non_red_cells as Range
Dim cell as Range
for each cell in Activesheet.UsedRange
if cell.Font.ColorIndex = 3 then
if redcells is nothing then
set red_cells = cell
else
set red_cells = Union(red_cells,cell)
end if
else
if nonredcells is nothing then
set non_red_cells = cell
else
set non_red_cells = Union(non_red_cells,cell)
end if
end if
Next

--
Regards,
Tom Ogilvy

"SuperJas" wrote in message
...
Hi,

My worksheet contains some red (i.e. Cells(x,y).Font.Color = vbRed) cells

which I don't my macro to touch when it runs. My question is: Is there a way
to determine which cells aren't red and assign a range object to these cells
(say 'Non_Red_Cells' as Range)? Below is a description of how I've thought
of approaching this (in 2 steps), but need help with the code. Please feel
free to suggest a more direct/easier method:


* Could you please help me out with a piece of code which will assign a

Range object to the cells that are red? That is, conceptually, I'd like it
to work like the Specialcells method, but forthe cells whose font is red.

i.e.
----------------------------------------------
Dim Red_Cells as Range

Set Red_Cells = {need help with code}
----------------------------------------------

* After determining Red_Cells, I would then like to set a range object

'Non_Red_Cells' to the non-red range of my UsedRange. Conceptually I guess
we can think of it as the Activesheet.Usedrange minus the Red_Cells. It is
on this range that I would like my macro to operate on. Is it possible to
get this?

Thanks very much for your help in advance! =)

SuperJas.