I have two lists with identical number of columns (13) in sheet1 and sheet2. These lists can have different number of rows. I would like to in sheet3 in some way get a summary of the changes from the first to the second list. In short terms, what kind of data has been added. If its possible then a sheet4 can summarize what kind of data has been deleted from the first to the second list. Below I have tried one code that is not working as intented and its also very unefficient. Anyone have a better idea how to manage this situation?

Sub List()

Dim vDataA As Variant, vDataB As Variant, vDataC As Variant, vDataD As Variant, vDataE As Variant, vDataF As Variant, vDataG As Variant, vDataH As Variant, vDataI As Variant, vDataJ As Variant, vDataK As Variant, vDataL As Variant, vDataM As Variant
Dim vA As Variant, vB As Variant, vC As Variant, vD As Variant, vE As Variant, vF As Variant, vG As Variant, vH As Variant, vI As Variant, vJ As Variant, vK As Variant, vL As Variant, vM As Variant, v As Variant
Dim ws1, ws2, ws3
Dim wbdelta As Workbook

Set wbdelta = ActiveWorkbook

ws1 = "Delta"
ws2 = "Total"
ws3 = "New"

k = 2

vDataA = wbdelta.Sheets(ws1).UsedRange.Columns("A").Value
vDataB = wbdelta.Sheets(ws1).UsedRange.Columns("B").Value
vDataC = wbdelta.Sheets(ws1).UsedRange.Columns("C").Value
vDataD = wbdelta.Sheets(ws1).UsedRange.Columns("D").Value
vDataE = wbdelta.Sheets(ws1).UsedRange.Columns("E").Value
vDataF = wbdelta.Sheets(ws1).UsedRange.Columns("F").Value
vDataG = wbdelta.Sheets(ws1).UsedRange.Columns("G").Value
vDataH = wbdelta.Sheets(ws1).UsedRange.Columns("H").Value
vDataI = wbdelta.Sheets(ws1).UsedRange.Columns("I").Value
vDataJ = wbdelta.Sheets(ws1).UsedRange.Columns("J").Value
vDataK = wbdelta.Sheets(ws1).UsedRange.Columns("K").Value
vDataL = wbdelta.Sheets(ws1).UsedRange.Columns("L").Value
vDataM = wbdelta.Sheets(ws1).UsedRange.Columns("M").Value

With wbdelta.Sheets(ws2).Range("A1").CurrentRegion

    vA = .Columns("A").Value
    vB = .Columns("B").Value
    vC = .Columns("C").Value
    vD = .Columns("D").Value
    vE = .Columns("E").Value
    vF = .Columns("F").Value
    vG = .Columns("G").Value
    vH = .Columns("H").Value
    vI = .Columns("I").Value
    vJ = .Columns("J").Value
    vK = .Columns("K").Value
    vL = .Columns("L").Value
    vM = .Columns("M").Value
    
    With CreateObject("Scripting.Dictionary")
    
        For i = 2 To UBound(vDataA, 1)
            .Item(i) = vDataA(i, 1) & vDataB(i, 1) & vDataC(i, 1) & vDataD(i, 1) & vDataE(i, 1) & vDataF(i, 1) & vDataG(i, 1) & vDataH(i, 1) & vDataI(i, 1) & vDataJ(i, 1) & vDataK(i, 1) & vDataL(i, 1) & vDataM(i, 1)
        Next
    
        For i = 2 To UBound(vD, 1)
            If Not .Exists(vA(i, 1) & vB(i, 1) & vC(i, 1) & vD(i, 1) & vE(i, 1) & vF(i, 1) & vG(i, 1) & vH(i, 1) & vI(i, 1) & vJ(i, 1) & vK(i, 1) & vL(i, 1) & vM(i, 1)) Then
                wbdelta.Sheets(ws3).Cells(k, 1) = vA(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 2) = vB(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 3) = vC(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 4) = vD(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 5) = vE(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 6) = vF(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 7) = vG(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 8) = vH(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 9) = vI(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 10) = vJ(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 11) = vK(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 12) = vL(i, 1)
                wbdelta.Sheets(ws3).Cells(k, 13) = vM(i, 1)
                k = k + 1
            End If
        Next i
    
    End With
    
End With

End Sub