Sub Macro1()
Dim O As Object 'déclare la variable O (Onglet)
Dim DLS As Integer 'déclare la variable DL (Dernière Ligne Source)
Dim PLS As Range 'déclare la variable PL (PLage Source)
Dim CELS As Range 'déclare la variable CELS (CELlule Source)
Dim DLC As Integer 'déclare la variable DLC (Dernière Ligne à Comparer)
Dim PLC As Range 'déclare la variable PLC (PLage à Comparer)
Dim CELC As Range 'déclare la variable CELC (CELlule à Comparer)
Set x = Range("A2")
Set O = Sheets("avant") 'définit l'onglet O (à adapter)
DLS = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière cellule éditée DLS de la colonne 1 (=A) de l'onglet O
Set PLS = O.Range("A2:A" & DLS) 'définit la plage PLS
DLC = O.Cells(Application.Rows.Count, 8).End(xlUp).Row 'définit la dernière cellule éditée DLC de la colonne 8 (=H) de l'onglet O
Set PLC = O.Range("H2:H" & DLC) 'définit la plage PLC
For Each CELS In PLS 'boucle 1 : sur toutes les cellules CELS de la plage PLS
For Each CELC In PLC 'boucle 2 : sur toutes les cellules CELC de la plage PLC
If CELS.Value = CELC.Value Then 'condition : si la cellule CELS de la boucle 1 est égale à la cellule CELC de la boucle 2
'place dans la cellule CELC décalée d'un colonne à droite (=colonne I), la valeur de la cellule CELS
CELC.Offset(0, 1).Value = CELS.Value
'place dans la cellule CELC décalée de deux colonnes à droite (=colonne J),
'la valeur de la cellule CELS décalée d'une colonne à droite (=colonne B)
CELC.Offset(0, 2).Value = CELS.Offset(0, 1).Value
'place dans la cellule CELC décalée de trois colonnes à droite (=colonne K),
'la valeur de la cellule CELS décalée de deux colonnes à droite (=colonne C)
CELC.Offset(0, 3).Value = CELS.Offset(0, 2).Value
Exit For 'sort de la boucle 2
End If 'fin de la condition
Next CELC 'prochaine cellule de la boucle 2
Next CELS 'prochaine cellule de la boucle 1
End Sub