Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)
Set pl = Sheets("Feuil1").Columns(4).SpecialCells(xlCellTypeConstants) 'définit la plage pl
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
Select Case cel.Value 'agit en fonction de la valeur de la cellule cel
Case "TOTO", "TITI" 'cas "TOTO" et "TITI"
'définit la recherche r (recherche dans la colonne D de l'onglet "Feuil2" la valeur exacte de la cellule cel)
Set r = Sheets("Feuil2").Columns(4).Find(cel.Value, , xlValues, xlWhole)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
cel.Value = cel.Offset(0, -1).Value 'récupère la valeur de la colonne C
r.Offset(0, 1).Resize(1, 8).Copy 'copie la ligne (colonne E à L) de l'occurrence trouvé
cel.Offset(0, 2).PasteSpecial (xlPasteValues) 'colle la plage dans la colonne F de l'onglet "Feuil1"
End If 'fin de la condition
End Select 'fin de l'action en fonction de la valeur de la cellule cel
Next cel 'prochaine cellule de la boucle
End Sub