A sample workbook would help us find a more precise solution, but the procedure below is a pretty straightforward copy of JeteMc's approach:
Sub Sheet1vsSheet2()
Dim i As LongPtr
Dim j As LongPtr
Dim LR As LongPtr
Dim LR1 As LongPtr
Dim LR2 As LongPtr
Dim LC As LongPtr
Dim LC1 As LongPtr
Dim LC2 As LongPtr
Dim Conc1 As String
Dim Conc2 As String
LR1 = Sheets(1).UsedRange.Rows(Sheets(1).UsedRange.Rows.Count).Row
LR2 = Sheets(2).UsedRange.Rows(Sheets(2).UsedRange.Rows.Count).Row
LR = Application.WorksheetFunction.Max(LR1, LR2)
LC1 = Sheets(1).UsedRange.Columns(Sheets(1).UsedRange.Columns.Count).Column
LC1 = Sheets(2).UsedRange.Columns(Sheets(2).UsedRange.Columns.Count).Column
LC = Application.WorksheetFunction.Max(LC1, LC2)
Application.ScreenUpdating = False
Sheets(3).Range("A:A").ClearContents
For i = 1 To LR
Conc1 = ""
Conc2 = ""
For j = 1 To LC
Conc1 = Conc1 & Sheets(1).Cells(i, j).Value
Conc2 = Conc2 & Sheets(2).Cells(i, j).Value
Next j
If Conc1 = Conc2 Then
Sheets(3).Cells(i, "A").Value = "Same"
ElseIf Conc1 = "" Then
Sheets(3).Cells(i, "A").Value = "Added"
ElseIf Conc2 = "" Then
Sheets(3).Cells(i, "A").Value = "Deleted"
Else
Sheets(3).Cells(i, "A").Value = "Modified"
End If
Next i
Application.ScreenUpdating = True
End Sub
It should compare each row on sheet1 to the same row on sheet2 and report the results in column A of sheet 3. It should also dynamically account for any added rows or columns. Experiment a bit with the attachment to see if it's working as desired:
Bookmarks