Option Explicit
Sub Fusion()
'Définit les variables
Dim i&, j&, DerL&
Dim Ws1 As Worksheet, Ws2 As Worksheet
'Permet de donner un nom plus court à tes feuilles
Set Ws1 = Worksheets("Feuil1"): Set Ws2 = Worksheets("Feuil2")
'Avec la feuille 2
With Ws2
'Pour toutes les lignes de 1 à la fin de ta feuille 2
For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
'Dernière ligne de la feuille 1
DerL = Ws1.Cells(Rows.Count, 1).End(xlUp)(2).Row
'Si la valeur de la cellule de la feuille 2 de la colonne 1 ligne i est trouvée
'dans la colonne 1 de la feuille 1 alors on continu
If Not IsError(Application.Match(.Cells(i, 1), Ws1.Columns(1), 0)) Then
'Pour toutes les ligne j de la feuille 1 jusqu'à la dernière ligne
For j = 1 To DerL
'Si la cellule de la feuille 2 est égale à la cellule de la feuille 1, alors on continu
If Cells(j, 1) = .Cells(i, 1) Then
'On copie les cellules des colonnes 2 et 3 dans les cellules de la feuille 1 en colonne 4 et 5
Ws1.Cells(j, 4) = .Cells(i, 2)
Ws1.Cells(j, 5) = .Cells(i, 3)
End If
'Prochaine ligne de la feuille 1
Next
'Si l'on a pas trouvé la valeur de la feuille 2 alors on ajoute une ligne
Else
'On copie la valeur de la colonne 1, 2 et 3 dans la feuille 1 colonne 1, 4 et 5
Ws1.Cells(DerL, 1) = .Cells(i, 1)
Ws1.Cells(DerL, 4) = .Cells(i, 2)
Ws1.Cells(DerL, 5) = .Cells(i, 3)
'On ajoute 1 pour la dernière ligne
DerL = DerL + 1
End If
'Prochaine ligne i de la feuille 2
Next
End With
End Sub