Comparing cells, coloring differences

S

steve.breslin

Hopefully last question for a while -- I would like to compare
adjoining cells (B1 and C1, B2 and C2, etc.), and change the color of
the C cells which are not identical to their B counterparts.

It would save me an enormous amount of work, but unfortunately I'm not
quite at the point where I can work this sort of thing out by myself.
Any help would be greatly appreciated indeed!
 
J

Jay Freedman

Hopefully last question for a while -- I would like to compare
adjoining cells (B1 and C1, B2 and C2, etc.), and change the color of
the C cells which are not identical to their B counterparts.

It would save me an enormous amount of work, but unfortunately I'm not
quite at the point where I can work this sort of thing out by myself.
Any help would be greatly appreciated indeed!

I think this handles all the contingencies, but I might have missed something.
Give it a whirl on some real tables and see if it needs any tweaks. Of course,
you can replace wdColorRed with any other color that appeals to you.

Sub ColorDifferences()
'compare adjoining cells (B1 and C1, B2 and C2, etc.),
'and change the color of the C cells which are not
'identical to their B counterparts

Dim oTbl As Table
Dim oRow As Row
Dim numRow As Long

If Not Selection.Information(wdWithInTable) Then
MsgBox "Please put the cursor in a table first."
Exit Sub
End If

Set oTbl = Selection.Tables(1)

If Not oTbl.Uniform Then
MsgBox "The macro can't deal with merged or split cells."
Exit Sub
End If

For numRow = 1 To oTbl.Rows.Count
Set oRow = oTbl.Rows(numRow)
With oRow
If Not .HeadingFormat Then
If .Cells(2).Range.Text <> .Cells(3).Range.Text Then
.Cells(3).Shading.ForegroundPatternColor = wdColorRed
End If
End If
End With
Next
End Sub
 
S

steve.breslin

Thanks Jay! Unfortunately I'm getting a compile bug. (Probably I'm
doing something silly, or using the wrong version of Excel: Office XP
Professional, by the way.) The offending line is...

Dim oTbl As Table

.... and the error is ...

Compile Error:
User-defined type not defined.
 
J

Jay Freedman

Thanks Jay! Unfortunately I'm getting a compile bug. (Probably I'm
doing something silly, or using the wrong version of Excel: Office XP
Professional, by the way.) The offending line is...

Dim oTbl As Table

... and the error is ...

Compile Error:
User-defined type not defined.

The problem is that you posted in the Word newsgroup, so I wrote a macro that
manipulates a Word table. (Yeah, maybe that is the wrong version of Excel. ;-)

For an answer for Excel, post in the microsoft.public.excel.programming group.
Good luck!
 
S

steve.breslin

The problem is that you posted in the Word newsgroup, so I wrote a macro that
manipulates a Word table. (Yeah, maybe that is the wrong version of Excel. ;-)

Oh my goodness! My apologies!
 
D

DeanH

In Excel you don't need a macro for this.
Use the Conditional Formatting, under Formatting menu.
Hope this helps.
DeanH
 

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