Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r1 As Range 'déclare la variable r1 (Recherche 1)
Dim pa1 As String 'déclare la variable pa1 (Première Adresse 1)
Dim r2 As Range 'déclare la variable r2 (Recherche 2)
Dim pa2 As String 'déclare la variable pa2 (Première Adresse 2)
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne dl de la colonne A
Set pl = .Range("A2:A" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Feuil1"
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
'définit la recherche 1 (recherche dans la colonne B de l'onglet "Feuil2" le texte de la cellule cel avant l'espace)
Set r1 = Sheets("Feuil2").Columns(2).Find(Split(cel.Value, " ")(0), , xlValues, xlPart)
If Not r1 Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
pa1 = r1.Address 'définie l'adresse pa1 de la première occurrence trouvée pour la recherche 1
Do 'exécute
'si le texte avant l'espace de la cellule cel est le même que le texte
'avant l'espace de l'occurrence trouvée r1, r1 prend la valeur de cel
If Split(cel, " ")(0) = Split(r1, " ")(0) Then r1.Value = cel.Value
Set r1 = Sheets("Feuil2").Columns(2).FindNext(r1) 'redéfinit la recherche r1 (occurrence suivante)
Loop While Not r1 Is Nothing And r1.Address <> pa1 'boucle tant qu'il existe des occurrences ailleurs qu'en pa1
End If 'fin de la condition
'définit la recherche 2 (recherche dans la colonne C de l'onglet "Feuil3" le texte de la cellule cel avant l'espace)
Set r2 = Sheets("Feuil3").Columns(3).Find(Split(cel.Value, " ")(0), , xlValues, xlPart)
If Not r2 Is Nothing Then 'condition : si il exite au moins une occurrence trouvée
pa2 = r2.Address 'définit l'adresse pa2 de la première occurrence trouvée pour la recherche 2
Do 'exécute
'si le texte avant l'espace de la cellule cel est le même que le texte
'avant l'espace de l'occurrence trouvée r2, r2 prend la valeur de cel
If Split(cel, " ")(0) = Split(r2, " ")(0) Then r2.Value = cel.Value
Set r2 = Sheets("Feuil3").Columns(3).FindNext(r2) 'redéfinit la recherche r2 (occurrence suivante)
Loop While Not r2 Is Nothing And r2.Address <> pa2 'boucle tant qu'il existe des occurrences ailleurs qu'en pa2
End If 'fin de la condition
Next cel 'prochaine cellule cel de la boucle
End Sub