Sub Macro3()
'
' Macro3 Macro
'
'récupère l'indice de la dernière ligne
last = Range("A65536").End(xlUp).Row
'sélectionne les 10 lignes à copier
Rows(last - 9 & ":" & last).Copy
'se place à la fin du tableau pour coller
Rows(last + 1 & ":" & last + 11).Insert Shift:=xlDown
Application.CutCopyMode = False
'sélection des nouvelles lignes créées pour en faire la zone d'impression
ActiveSheet.PageSetup.PrintArea = "$C$" & last + 1 & ":$I$" & last + 10
'recopie de la formule
Range("C" & last + 1).FormulaArray = _
"=IF(R[-5]C=""Soir"",""Soir"",IF(R[-5]C=""Midi"",""Midi"",IF(N(R[-5]C),R[-5]C+7,INDEX(table_menus,MATCH(RC2,'Menu récurrent'!R4C1:R8C1,0),MATCH(TEXT(R2C,""JJJJ"")&R[-1]C,'Menu récurrent'!R2C2:R2C15&'Menu récurrent'!R3C2:R3C15,0)))))"
'formule tirée vers la droite
Range("C" & last + 1).AutoFill Destination:=Range("C" & last + 1 & ":I" & last + 1), Type:=xlFillDefault
'formule tirée vers le bas
Range("C" & last + 1 & ":I" & last + 1).AutoFill Destination:=Range("C" & last + 1 & ":I" & last + 10), Type:=xlFillDefault
'sélection des autres lignes précédentes pour les masquer
Rows("1:" & last).EntireRow.Hidden = True
End Sub