Sub TEST()
Dim d1 As Object, f1 As Worksheet, f2 As Worksheet
Dim t, i&, clef, j&
Set d1 = CreateObject("Scripting.Dictionary")
d1.CompareMode = vbTextCompare
Set f1 = Sheets("BD")
Set f2 = Sheets("résultats")
t = f1.Range("a1").CurrentRegion.Value
For i = 1 To UBound(t)
clef = t(i, 1) & "|" & t(i, 2)
If Not d1.exists(clef) Then d1.Add clef, d1.Count + 1
For j = 1 To UBound(t, 2)
If t(i, j) <> "" Then t(d1(clef), j) = t(i, j)
Next j
Next i
f2.Range("a1").CurrentRegion.Clear
f2.Range("a1").Resize(d1.Count, UBound(t, 2)) = t
End Sub