Question: I Need a VBA code which can track the changes with OLD sheet & NEW sheet with the values not by Cells,we have a Unique value which will be same in both sheets is in "Z"column.

If any new no.will be found, it should Highlight as a new Order No.

[This](https://i.stack.imgur.com/wdXvA.png) is the sheet screenshot in that Z column contains the Unique no.with which i tried to compare with old sheet,but i failed.

Answer: 
The following will do what you expect:

```
Sub foo()
Dim wsNew As Worksheet: Set wsNew = Sheets("NEW")
Dim wsOld As Worksheet: Set wsOld = Sheets("OLD")
'above declare and set both your worksheets, amend as required
Dim Result As String

OldLastRow = wsOld.Cells(wsOld.Rows.Count, "Z").End(xlUp).Row
NewLastRow = wsNew.Cells(wsNew.Rows.Count, "Z").End(xlUp).Row
'above get the number of rows with data on each sheet on column Z

For i = 2 To NewLastRow 'loop through New sheet from row 2 to last
    SearchValue = wsNew.Cells(i, "Z") 'get the value of that row
    For x = 2 To OldLastRow 'loop through Old sheet to find a match
        If wsOld.Cells(x, "Z") = SearchValue Then Result = "Found" 'if match found, set Result variable as flag
    Next x
    If Result = "Found" Then 'if found
        Result = "" 'remove flag before next loop
    Else 'if not found
        wsNew.Rows(i).EntireRow.Interior.Color = 5296274 'highlight the row
    End If
Next i
End Sub

```

**UPDATE:**

If instead of highlighting the row, you wish to copy that row to another sheet then the following will copy the row to Sheet4, amend the sheet name as required:

```
Sub foo()
Dim wsNew As Worksheet: Set wsNew = Sheets("NEW")
Dim wsOld As Worksheet: Set wsOld = Sheets("OLD")
Dim wsResult As Worksheet: Set wsResult = Sheets("Sheet4")
'above declare and set both your worksheets, amend as required
Dim Result As String
Dim i As Long
Dim x As Long

OldLastRow = wsOld.Cells(wsOld.Rows.Count, "Z").End(xlUp).Row
NewLastRow = wsNew.Cells(wsNew.Rows.Count, "Z").End(xlUp).Row
'above get the number of rows with data on each sheet on column Z

For i = 2 To NewLastRow 'loop through New sheet from row 2 to last
    SearchValue = wsNew.Cells(i, "Z") 'get the value of that row
    For x = 2 To OldLastRow 'loop through Old sheet to find a match
        If wsOld.Cells(x, "Z") = SearchValue Then Result = "Found" 'if match found, set Result variable as flag
    Next x
    If Result = "Found" Then 'if found
        Result = "" 'remove flag before next loop
    Else 'if not found
        NextFreeRow = wsResult.Cells(wsResult.Rows.Count, "A").End(xlUp).Row + 1
        wsNew.Rows(i).EntireRow.Copy Destination:=wsResult.Cells(NextFreeRow, 1)
    End If
Next i
End Sub

```
Please check the attachment,here in this workbook,sheet OLD contains old data & NEW contains NEW updated data,actually I need to track the changes wherever its done,for that I tried to concatenated the columns "B" & "F" in column "Z" to get the unique no.s so with that reference i can find the it in OLD sheet & if found then copy both entire rows from both sheets(NEW & OLD) & then track the changes by cells,but it not working. Because sometimes changes are happening in "N" i.e Required QTY,so i am not able track them.& IF NEW row will be added in NEW sheet then it will appear as new order.

For this I tried to copy the match founded rows on different sheets & not founded rows also & then tried with track changes by comparing cells,but i failed,can you please suggest me something better. 

[enter image description here](https://i.stack.imgur.com/NIf0j.png)enter image description here
[enter image description here](https://i.stack.imgur.com/Q49Oh.png)