Bonjour daudey, bonjour R@chid,
une proposition en VBA en pièce jointe... à tester
PS : est-il normal que le dernier caractère du nom de famille soit systématiquement un espace ?
Sub metiers()
Dim Tablo As Variant, derLig As Long, myRange As Range, myReturn As Range, aa As String
Application.ScreenUpdating = False
With Sheets("données 1")
derLig = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To derLig
Set myRange = Sheets("données 2").Columns(1).Find(.Cells(i, 1), LookIn:=xlValues, lookat:=xlWhole)
If Not myRange Is Nothing Then
Set myReturn = myRange
aa = myRange & myRange.Offset(, 1)
If UCase(aa) = UCase(.Cells(i, 1) & .Cells(i, 2)) Then
.Cells(i, 4) = myRange.Offset(, 2)
Else
Do
Set myRange = Sheets("données 2").Columns(1).FindNext(myRange)
aa = myRange & myRange.Offset(, 1)
If UCase(aa) = UCase(.Cells(i, 1) & .Cells(i, 2)) Then
.Cells(i, 4) = myRange.Offset(, 2)
End If
Loop While Not myRange Is Nothing And myRange <> myReturn
End If
End If
Next i
End With
Application.ScreenUpdating = True
End Sub