User
Date and Time
Action Type
Comment
Field
Before
After
(Juste pour me faire plaisir, écris les lignes 16 et 17 comme ça :
Sheets("BON" ).PrintOut Copies:=1, Collate:=True
Ligne 4, tu ne précises la feuille de la cellule i,1.)
Je ne comprends pas bien pourquoi l'impression n'est pas dans la boucle. (Ligne 16&17) Je l'aurais mise avant Loop (Ligne 15)
Pour ton problème, il faut décomposer ton problème.
D'une part la préparation d'une feuille, d'autre part la boucle.
Exemple:
Sub PreparerFeuille(k as Long)
Dim bon as Worksheet
Dim bdd as Worksheet
Set bon = Worksheets("BON")
Set bdd = Worksheets("base de données")
bon.Cells(19, 3).Value = bdd.Cells(k - 1, 1).Value
bon.Cells(23, 3).Value = bdd.Cells(k - 1, 2).Value
bon.Cells(25, 3).Value = bdd.Cells(k - 1, 3).Value
bon.Cells(21, 3).Value = bdd.Cells(k - 1, 4).Value
bon.Cells(13, 3).Value = bdd.Cells(k - 1, 5).Value
bon.Cells(15, 3).Value = bdd.Cells(k - 1, 6).Value
bon.Cells(11, 5).Value = bdd.Cells(k - 1, 7).Value
bon.Cells(9, 2).Value = bdd.Cells(k - 1, 8).Value
bon.Cells(2, 5).Value = bdd.Cells(k - 1, 10).Value
Set bon = Nothing
Set bdd = Nothing
End Sub
Sub ImprimerLesFeuilles
Dim bon as Worksheet
Dim bdd as Worksheet
Dim i As Long
Set bon = Worksheets("BON")
Set bdd = Worksheets("base de données")
i = 1
Do While bdd.Cells(i, 1).Value <> ""
i = i + 1
PreparerFeuille i
bon.PrintOut ....
Loop
Set bon = Nothing
Set bdd = Nothing
End Sub