Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Worksheet Functions / March 2008

Tip: Looking for answers? Try searching our database.

Compare spreadsheets

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
johngooley@pureus.com - 03 Mar 2008 12:13 GMT
I'm trying to find part numbers on one spreadsheet that are not on
another and create a list of those parts. Doable...?
ryguy7272 - 03 Mar 2008 15:31 GMT
Without a lot of info. to go on...
Let's say you have these numbers in A1:A10
1
3
3
23
3
6
7
8
9
10

And you have these numbers in B1:B10
1
3
2
5
6
7
8
9
1
1

In Column C you will see items in Column A that are not in Column B, such as
these:
23
10

Just run this macro:
Sub TestCompareWorksheets()
   ' compare two different worksheets in the active workbook
   CompareWorksheets Worksheets("Sheet1"), Worksheets("Sheet2")
   ' compare two different worksheets in two different workbooks
'    CompareWorksheets ActiveWorkbook.Worksheets("Sheet1"), _
       Workbooks("WorkBookName.xls").Worksheets("Sheet2")
End Sub

Sub CompareWorksheets(ws1 As Worksheet, ws2 As Worksheet)
Dim r As Long, c As Integer
Dim lr1 As Long, lr2 As Long, lc1 As Integer, lc2 As Integer
Dim maxR As Long, maxC As Integer, cf1 As String, cf2 As String
Dim rptWB As Workbook, DiffCount As Long
   Application.ScreenUpdating = False
   Application.StatusBar = "Creating the report..."
   Set rptWB = Workbooks.Add
   Application.DisplayAlerts = False
   While Worksheets.Count > 1
       Worksheets(2).Delete
   Wend
   Application.DisplayAlerts = True
   With ws1.UsedRange
       lr1 = .Rows.Count
       lc1 = .Columns.Count
   End With
   With ws2.UsedRange
       lr2 = .Rows.Count
       lc2 = .Columns.Count
   End With
   maxR = lr1
   maxC = lc1
   If maxR < lr2 Then maxR = lr2
   If maxC < lc2 Then maxC = lc2
   DiffCount = 0
   For c = 1 To maxC
       Application.StatusBar = "Comparing cells " & Format(c / maxC, "0 %")
& "..."
       For r = 1 To maxR
           cf1 = ""
           cf2 = ""
           On Error Resume Next
           cf1 = ws1.Cells(r, c).FormulaLocal
           cf2 = ws2.Cells(r, c).FormulaLocal
           On Error GoTo 0
           If cf1 <> cf2 Then
               DiffCount = DiffCount + 1
               Cells(r, c).Formula = "'" & cf1 & " <> " & cf2
           End If
       Next r
   Next c
   Application.StatusBar = "Formatting the report..."
   With Range(Cells(1, 1), Cells(maxR, maxC))
       .Interior.ColorIndex = 19
       With .Borders(xlEdgeTop)
           .LineStyle = xlContinuous
           .Weight = xlHairline
       End With
       With .Borders(xlEdgeRight)
           .LineStyle = xlContinuous
           .Weight = xlHairline
       End With
       With .Borders(xlEdgeLeft)
           .LineStyle = xlContinuous
           .Weight = xlHairline
       End With
       With .Borders(xlEdgeBottom)
           .LineStyle = xlContinuous
           .Weight = xlHairline
       End With
       On Error Resume Next
       With .Borders(xlInsideHorizontal)
           .LineStyle = xlContinuous
           .Weight = xlHairline
       End With
       With .Borders(xlInsideVertical)
           .LineStyle = xlContinuous
           .Weight = xlHairline
       End With
       On Error GoTo 0
   End With
   Columns("A:IV").ColumnWidth = 20
   rptWB.Saved = True
   If DiffCount = 0 Then
       rptWB.Close False
   End If
   Set rptWB = Nothing
   Application.StatusBar = False
   Application.ScreenUpdating = True
   MsgBox DiffCount & " cells contain different formulas!", vbInformation, _
       "Compare " & ws1.Name & " with " & ws2.Name
End Sub
'You may have to change this to suit your specific needs...

Macro source:
http://www.exceltip.com/st/Compare_two_worksheets_using_VBA_in_Microsoft_Excel/4
77.html


Regards,
Ryan--

Signature

RyGuy

> I'm trying to find part numbers on one spreadsheet that are not on
> another and create a list of those parts. Doable...?
ryguy7272 - 03 Mar 2008 15:34 GMT
Whoops!  Sorry!!  Data is in Column A on Sheet1 and Column A on Sheet 2,
results are output to Sheet 3.

Hope that works for ya!

Ryan--

Signature

RyGuy

> Without a lot of info. to go on...
> Let's say you have these numbers in A1:A10
[quoted text clipped - 128 lines]
> > I'm trying to find part numbers on one spreadsheet that are not on
> > another and create a list of those parts. Doable...?
johngooley@pureus.com - 03 Mar 2008 17:27 GMT
On Mar 3, 4:13 am, johngoo...@pureus.com wrote:
> I'm trying to find part numbers on one spreadsheet that are not on
> another and create a list of those parts. Doable...?

Wow thx - so how do I point this macro at the appropriate sheets...?
ryguy7272 - 05 Mar 2008 14:07 GMT
Read this:
http://www.anthony-vba.kefra.com/vba/vbabasic1.htm#Creating_Your_First_Macro

Also, make sure your sheets are named Sheet1 and Sheet2.

Regards,
Ryan--

Signature

RyGuy

> On Mar 3, 4:13 am, johngoo...@pureus.com wrote:
> > I'm trying to find part numbers on one spreadsheet that are not on
> > another and create a list of those parts. Doable...?
>
> Wow thx - so how do I point this macro at the appropriate sheets...?
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.