Sub Macro1()
Dim c As Range
Dim dest As Range
For Each c In Sheets("bon commande").Range("article")
If c.Value > 0 Then
Set dest = Worksheets("commande en cours").Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
dest.Value = Worksheets("bon commande").Range("B5").Value
dest.Offset(0, 1).Value = Worksheets("bon commande").Range("A8").Value
dest.Offset(0, 2).Value = Worksheets("bon commande").Range("B8").Value
dest.Offset(0, 3).Value = Worksheets("bon commande").Range("C5").Value
dest.Offset(0, 4) = c.Value 'incohérent
dest.Offset(0, 4).Value = c.Offset(0, -1).Value 'incohérent
dest.Offset(0, 4).Value = c.Offset(0, 2).Value 'seule cette valeur sera prise en compte
End If
Next
End Sub