Sub Macro1()
Dim O1 As Object 'déclare la variable O1 (Onglet 1)
Dim O2 As Object 'déclare la variable O2 (Onglet 2)
Dim OD As Object 'déclare la variable OD (Onglet de Destination)
Dim DL1 As Integer 'déclare la variable DL1 (Dernière Ligne de l'onglet 1)
Dim DL2 As Integer 'déclare la variable DL2 (Dernière Ligne de l'onglet 2)
Dim PL1 As Range 'déclare la variable PL1 (PLage de l'onglet 1)
Dim PL2 As Range 'déclare la variable PL2 (PLage de l'onglet 2)
Dim CEL As Range 'déclare la variable CEL (CEL_lule)
Dim R As Range 'déclare la variable R (R_echerche)
Dim Dest As Range 'déclare la variable Dest (cellule de Dest_ination)
Set O1 = Sheets("Feuil1") 'définit l'onglet O1
Set O2 = Sheets("Feuil2") 'définit l'onglet O2
Set OD = Sheets("Feuil3") 'définit l'onglet OD
DL1 = O1.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL1 de la colonne 1 (=A) de l'onglet O1
DL2 = O2.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL2 de la colonne 1 (=A) de l'onglet O2
Set PL1 = O1.Range("A1:A" & DL1) 'définit la plage PL1
Set PL2 = O2.Range("A2:A" & DL2) 'définit la plage PL2
For Each CEL In PL1 'boucle sur toutes les cellules éditées CEL de la plage PL1
Set R = PL2.Find(CEL.Value, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur de la cellule CEL dans la plage PL2)
If Not R Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
Set Dest = IIf(OD.Range("A1") = "", OD.Range("A1"), OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)) 'définit la cellule de destination DEST
R.Resize(, 4).Copy Dest 'copie la cellule de la première occurrence trouvée, redimensionnée jusqu'à la colonne D, et la colle dans DEST
End If 'fin de la condition
Next CEL 'prochaine cellule CEL de la boucle
End Sub