Bonjour Gravlix, bonjour le forum,
Peut-être comme ça :
Sub Macro1()
Dim DLV As Integer 'déclare la variable DLV (Dernière Lignes des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim PLB As Integer 'déclare la variable PLB (Première Ligne de la Base))
DLV = Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DLV des valeurs
For I = 8 To DLV 'boucle sur toutes les ligne de 8 à DLV
PLB = IIf(Range("H2").Value = "", 2, Range("H1").End(xlDown).Row + 1) 'définit la première ligne vide PLB de la base de donnée
Cells(PLB, "G").Value = Range("B3").Value 'renvoie le TROU
Cells(PLB, "H").Value = Cells(I, "A").Value 'renvoie l'aliment
Cells(PLB, "J").Value = Range("B4").Value 'renvoie le PER
Cells(PLB, "M").Value = Cells(I, "B").Value 'renvoie la quantité
Cells(PLB, "O").Value = Cells(I, "C").Value 'renvoie l'AR
Next I 'prochaine ligne de la boucle
End Sub