Option Explicit
Sub test()
Dim a, i As Long, dico As Object
Set dico = CreateObject("Scripting.Dictionary")
dico.CompareMode = 1
a = Sheets("CANEVA").Range("a1").CurrentRegion.Value
For i = 2 To UBound(a, 1)
dico(a(i, 2)) = a(i, 1)
Next
With Sheets("DETAIL1")
With .Range("a1").CurrentRegion
a = .Value
For i = 2 To UBound(a, 1)
If dico.exists(a(i, 12)) Then
a(i, 1) = dico(a(i, 12))
End If
Next
.Value = a
End With
End With
Set dico = Nothing
End Sub