Help with Macro - What names are missing or added

thepartydj

Active Member
Joined
Sep 23, 2004
Messages
261
Office Version
  1. 365
Platform
  1. Windows
I have two workbooks. One "Monday" and one "Tuesday"
Each file is the same
Column A = Employee ID
Column B = FIrst Name
Column C = Last Name
Column G = Group

I would like help creating a macro that will compair Monday sheet with Tuesday Sheet. This Macro would need to let me know which items were changed from each list. Some may be deleted, or added or changed. Then copy that entire row to a new sheet on "Tuesday" file.

Thanks in advance for the help!
 

Excel Facts

Select all contiguous cells
Pressing Ctrl+* (asterisk) will select the "current region" - all contiguous cells in all directions.
I found this online.

VBA Code:
Sub CompareVals()


    Application.ScreenUpdating = False
    Dim GL As Range, RngList As Object, rng As Range
    Set RngList = CreateObject("Scripting.Dictionary")
    Dim foundGL As Range
    Dim LastRow2 As Long
    Dim LastRow As Long
    LastRow = Sheets("Sheet2").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
    For Each GL In Sheets("Sheet2").Range("A1:A" & LastRow)
        Set foundGL = Sheets("Sheet1").Range("A:A").Find(GL, LookIn:=xlValues, lookat:=xlWhole)
        If Not foundGL Is Nothing Then
            For Each rng In Sheets("Sheet1").Range("A" & foundGL.row & ":G" & foundGL.row)
                If Not RngList.Exists(rng.Value) Then
                    RngList.Add rng.Value, Nothing
                End If
            Next rng
            For Each rng In Sheets("Sheet2").Range("A" & GL.row & ":G" & GL.row)
                If Not RngList.Exists(rng.Value) Then
                    rng.Interior.ColorIndex = 6
                End If
            Next rng
        Else
            GL.EntireRow.Interior.ColorIndex = 3
        End If
    Next GL
    LastRow2 = Sheets("Sheet1").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
    For Each GL In Sheets("Sheet1").Range("A2:A" & LastRow)
        Set foundGL = Sheets("Sheet2").Range("A:A").Find(GL, LookIn:=xlValues, lookat:=xlWhole)
        If foundGL Is Nothing Then
            GL.EntireRow.Interior.ColorIndex = 3
        End If
    Next GL
End Sub
 
Upvote 0
Solution

Forum statistics

Threads
1,214,787
Messages
6,121,569
Members
449,038
Latest member
Guest1337

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top