Macro to compare two list

  • Thread starter Thread starter DGillham
  • Start date Start date
D

DGillham

Hi!

I have two worksheets. On the Master list I have a list of cars wit
their Registration numbers and vehicle details, the other has jus
registrations only. I wish to compare the two lists, and remove fro
the Master list
any vehicle that is on the registration list only.

I've been able to use the Macro from the Microsoft website, but thi
only removes the duplicate registration numbers, not the entire ro
relating to this registration number. Has anyone any idea how I modif
this macro to delete the row, not just the cell?

Sub DelDups_TwoLists()
Dim iListCount As Integer
Dim iCtr As Integer

' Turn off screen updating to speed up macro.
Application.ScreenUpdating = True


' Get count of records to search through (list that will be deleted).
iListCount = Sheets("Master").Range("A1:A2500").Rows.Count

' Loop through the "master" list.
For Each x In Sheets("Sheet2").Range("A1:A2500")
' Loop through all records in the second list.
For iCtr = 1 To iListCount
' Do comparison of next record.
' To specify a different column, change 1 to the column number.
If x.Value = Sheets("Master").Cells(iCtr, 1).Value Then
' If match is true then delete row.
Sheets("Master").Cells(iCtr, 1).Delete xlShiftUp
' Increment counter to account for deleted row.
iCtr = iCtr + 1
End If
Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub

Thanks in advance
Darre
 
Hello Darren,

To delete the entire row this line needs to be changed from:
Sheets("Master").Cells(iCtr, 1).Delete xlShiftUpHere is the revised
to:
Sheets("Master").Cells(iCtr, 1).EntireRow.Delete xlShiftUpcode

Here is the revised code...


Code
-------------------

' Loop through the "master" list.
For Each x In Sheets("Sheet2").Range("A1:A2500")
' Loop through all records in the second list.
For iCtr = 1 To iListCount
' Do comparison of next record.
' To specify a different column, change 1 to the column number.
If x.Value = Sheets("Master").Cells(iCtr, 1).Value Then
' If match is true then delete row.
Sheets("Master").Cells(iCtr, 1).EntireRow.Delete xlShiftUp
' Increment counter to account for deleted row.
iCtr = iCtr + 1
End If
Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub
 
Thanks Leith

How difficult is it to rather than delete the row, to cut and paste it
onto another workbook? Sorry to trouble you with this, but it would be
a great help!

Darren
 
Back
Top