Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range ' Variable représentant la cellule qui contient le menu recherché
' si la cellule modifiée (Target) est en B5, les suivantes sont exécutées
' sinon fin de la macro
If Target.Address = "$B$5" Then
' Désactivation de l'événement Change pour éviter la redondance des actions
' en effet, chaque modification relance l'événement, d'où risque de ralentissement ou de blocage
Application.EnableEvents = False
' La ligne suivante recherche la cellule contenant la menu dans la feuille Base (Feuil1)
' et l'affecte à la variable Cel
Set Cel = Feuil1.Range("B:B").Find(Target.Value, LookIn:=xlValues)
' La boucle suivante parcourt les lignes 7 à 13 de la colonne C sur la feuille Saisie (Feuill active)
For i = 7 To 13
' la cellule C(i) prend la valeur de la cellule décalée par rapport à la cellule Cel
' Offset(0, i - 6) veut dire : cellule située sur la même ligne (0 ligne de décalage),
' et sur la colonne située i-6 colonne à droite
' soit si i=7 : décalage de 0 ligne et de 1 colonne à droite
Range("C" & i) = Cel.Offset(0, i - 6)
Next