Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim DS As Date 'déclare la variable DS (Date Source)
Dim DJ As Date 'déclare la variable DJ (Date du Jour)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim LI As Integer 'déclare la variable LI (LIgne)
Set OS = Worksheets("feuil1") 'définit l'onglet OS
Set OD = Worksheets("feuil2") 'définit l'onglet OD
DL = OS.Cells(Application.Rows.Count, "U").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne U de l'ongtlet OS
TV = OS.Range("R1:U" & DL) 'définit la tableau des valeurs TV
DJ = Date 'définit la date du jour DJ
COL = OD.Rows(4).Find(DJ, , xlFormulas, xlWhole).Column 'définit la colonne COL (recherche la date du jour dans la ligne 4 de l'onglet OD)
For I = 2 To DL 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
DS = DateSerial(Year(TV(I, 4)), Month(TV(I, 4)), Day(TV(I, 4))) 'définit la date source DS (date de la donnée ligne I colonne 4 de TV)
If DS = DJ Then 'condition : si les dates correspondent
LI = OD.Columns(1).Find(TV(I, 2), , xlValues, xlWhole).Row 'définit la ligne LI (recherche la valeur exacte de la donnée ligne I colonne 2 de TV [le numéro], dans la colonne 1 de l'onglet OD)
OD.Cells(LI, COL).Value = TV(I, 1) 'renvoie la donnée ligne I colonne 1 de TV [le produit], dans la celllule ligne LI, colonne COL de l'onglet OD
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub