Par acquis de conscience j'ai testée la solution de Jean-Eric qui me semblait la plus performante sur 40 000 lignes
le résultat en 80 secondes environ.
Ce résultat peut encore être amélioré (75 " environ) en remplaçant le iif chronovore :
Sub Galopin()
Dim a, rng As Range, i, j, HDeb, HFin, n
HDeb = Timer
a = Worksheets("Sheet1").[A2].CurrentRegion.Resize(, 2).Value
Set rng = Worksheets("Sheet2").[A2].CurrentRegion
For i = 1 To UBound(a)
n = Application.Match(a(i, 1), rng, 0)
a(i, 2) = Not IsError(n)
Next
Worksheets("Sheet1").[A2].CurrentRegion.Resize(UBound(a), 2) = a
MsgBox Timer - HDeb
End Sub
Avec Find : entre 5 et 10 fois plus long (Je n'ai pas eu le courage d'attendre la fin...)
A+