Bonjour,
On simule une maj avec VLookUp :7sec
Sub RechvM2()
Application.ScreenUpdating = False
Set clé = Range("F2:F2673") ' valeurs cherchées
Set résult = Range("G2:G2673")
colResult = 2
messageErreur = "inconnu"
For i = 1 To clé.Count
tmp = clé.Cells(i, 1)
résult.Cells(i, 1) = Application.VLookup(tmp, [matable], colResult, False)
Next i
End Sub
Avec Dictionary :0,17 sec
Sub RechvM()
Set clé = Range("F2:F2673") ' valeurs cherchées
Set résult = Range("G2:G2673")
colResult = 2
messageErreur = "inconnu"
Set d = CreateObject("Scripting.Dictionary")
a = [matable].Value
b = clé.Value
For i = LBound(a) To UBound(a)
d(a(i, 1)) = a(i, colResult)
Next i
Dim temp(): ReDim temp(LBound(b) To UBound(b), 1 To 1)
For i = LBound(b) To UBound(b)
If d(b(i, 1)) <> "" Then temp(i, 1) = d(b(i, 1)) Else temp(i, 1) = messageErreur
Next i
résult.Value = temp
End Sub
Ceuzin