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 dest As Range 'déclare la variable dest (cellule de DESTination)
Sheets("Feuil2").Range("D8").CurrentRegion.Clear 'efface les anciennes données de l'onglet "Feuil2"
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
dl = .Cells(Application.Rows.Count, 4).End(xlUp).Row 'définit la dernière ligne éditée de la colonne D
Set pl = .Range("D2:D" & 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
If cel.Interior.ColorIndex = 4 And cel.Offset(-1, -3).Value = "Item" Then 'condition : si la cellule à un fond "vert brillant" et si la cellule de la colonne A une ligne au dessus contient "item"
With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
'définit la cellule de destination dest (D8 si d8 est vide, sinon la première cellule vide de la colonne D)
Set dest = IIf(.Range("D8").Value = "", .Range("D8"), .Cells(Application.Rows.Count, 4).End(xlUp).Offset(1, 0))
End With 'fin de la prise en compte de l'onglet "Feuil2"
dest.Value = cel.Value 'récupère la valeur de la cellule cel dans dest
End If 'fin de la condition
Next cel 'prochaine cellule cel dela boucle
End Sub