Bonjour et
Une premiere ébauche (correspond a la demande mais resultat attendu pas terrible)
La macro a lancer depuis la Module1.
Sub DupliqueLigne()
'Lignes a copier
Set LigneClasse = Sheets("Analyse").Rows("29:55")
'Derniere matiere
DerLigneMatiere = Sheets("Liste").Cells(Rows.Count, 2).End(xlUp).Row
'Pour les lignes (feuille Liste) de la ligne 2 a la derniere ligne (Anglais a Sport)
For LigneMatiere = 2 To DerLigneMatiere
'On copie les lignes 29 a 55 de la feuille Analyse
LigneClasse.Rows.Copy
'On va a la derniere ligne de la feuille analyse contenant des données
DerLigneClasse = Sheets("Analyse").Cells(Rows.Count, 2).End(xlUp).Row + 1
'On insert les lignes copié
Sheets("Analyse").Rows(DerLigneClasse).Insert Shift:=xlDown
'On passe a la ligne suivante dans la feuille liste
Next LigneMatiere
End Sub
On peut tricher en modifiant la ligne de code :
For LigneMatiere = 2 To DerLigneMatiere
En remplacant le 2 par un 4 mais on peut faire une procedure plus propre
Si on créé toutes les lignes sans passer par une copie des lignes 29 à 55
A+