Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Range 'déclare la varaible R (Recherche)
Dim I As Byte 'déclare la varaible I (Incrément)
Dim DEST As Range 'déclare la varaible DEST (cellule de DESTination)
If Target.Address <> "$A$3" Then Exit Sub 'si le changement a lieu ailleurs qu'en A3, sort de la procédure
Range("A6:A" & Cells(Application.Rows.Count, 1).End(xlUp).Row).ClearContents 'efface les anciennes données
With Sheets("Données") 'prend en compte l'onglet "Données"
Set R = .Columns(1).Find(Target.Value, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur de A3 dans la colonne A de l 'onglet "Données")
If Not R Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
For I = 1 To 3 'boucle sur 3 colonnes
Set DEST = Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
If R.Offset(0, I).Value <> "" Then DEST.Value = .Cells(4, I + 1).Value 'récupere la valeur orange si la ligne contient une valeur
Next I 'prochaine colonne de la boucle
End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "Données"
End Sub