Private Sub Worksheet_Change(ByVal Target As Range)
Dim R1 As Range 'déclare la variable R1 (Recherche 1)
Dim R2 As Range 'déclare la variable R2 (Recherche 2)
Dim R3 As Range 'déclare la variable R3 (Recherche 3)
Dim D As Date 'déclare la variable D (Date)
If Target.Address <> "$A$1" Then Exit Sub 'si le changement a lieu ailleurs qu'en A1, sort de la procédure
If Target.Value = "" Then Exit Sub 'si A1 est effacée, sort de la procédure
Set R1 = Range("S1").CurrentRegion.Find(Target.Value, , xlValues, xlWhole) 'définit la première recherche R1 (recherche le numéro de la semaine dans la colonne S)
D = DateSerial(Year(R1.Offset(0, 1)), Month(R1.Offset(0, 1)), 1) 'définit la date D en fonction de l'occurrence trouvée
Set R2 = Range("B3:M3").Find(D, , xlFormulas, xlWhole) 'redéfinit la recherche R2 (recherche la date dans la plage B3:M3)
Set R3 = Range("B14:M14").Find(Target.Value, , xlValues, xlWhole) 'redéfinit la recherche R3 (recherche le numéro de la semaine dans la plage B14:M14)
R2.Offset(1, 0).Resize(7, 1).Copy R3.Offset(1, 0) 'copie les valeur du mois dans la cellule R3 décalé d'une ligne vers le bas
End Sub