Bonjour Eric, bonjour à tous,
Merci pour votre retour. Je pensais faire différemment, mais je bloque sur le développement de la macro. Je m'explique:
Vérifier si le nombre de ligne en colonne A du classeur "données" est > 40
Si oui, alors on applique le code ci-dessous, c'est à dire qu'on renseigne les 40 étiquettes du doc Word avec la valeur des 40 premières cellules de la colonne A, on imprime le doc Word, on supprime les 40 premières lignes du doc Excel "Données". En suite on vérifie à nouveau si le nombre de ligne en colonne A du classeur "données" est toujours > 40. Si oui on répète cette procédure et ainsi de suite. C'est sur ce point que je bloque :/
nb_ligne = Worksheets(2).Range("A65536").End(xlUp).Row
If (nb_ligne) > 40
For i = 1 To 40
'les signets du document Word sont nommés Blank_MP1_panel1 , Blank_MP1_panel2 , Blank_MP1_panel3
With WordDoc.Bookmarks("Blank_MP1_panel" & i).Range
.Text = Worksheets(2).Cells(i, 1) & vbCrLf & vbCrLf & Worksheets(2).Cells(i, 4) & vbCrLf & vbCrLf & Worksheets(2).Cells(i, 5)
.Font.Name = "arial"
.Font.Size = 10
.Font.Bold = True
.Font.Italic = False
.Font.Color = RGB(3, 34, 76)
End With
Next i
WordApp.Visible = False
WordApp.ActiveDocument.PrintOut
Worksheets(2).Rows("1:40").Select
Selection.Delete Shift:=xlUp
Si non ( le nombre de ligne en colonne A du classeur "données" est < 40) alors:
nb_ligne = Worksheets(2).Range("A65536").End(xlUp).Row
If (nb_ligne) < 40
For i = 1 To Worksheets(2).Range("A" & Rows.Count).End(xlUp).Row
'les signets du document Word sont nommés Blank_MP1_panel1 , Blank_MP1_panel2 , Blank_MP1_panel3
With WordDoc.Bookmarks("Blank_MP1_panel" & i).Range
.Text = Worksheets(2).Cells(i, 1) & vbCrLf & vbCrLf & Worksheets(2).Cells(i, 4) & vbCrLf & vbCrLf & Worksheets(2).Cells(i, 5)
.Font.Name = "arial"
.Font.Size = 10
.Font.Bold = True
.Font.Italic = False
.Font.Color = RGB(3, 34, 76)
End With
Next i
WordApp.Visible = False
WordApp.ActiveDocument.PrintOut
Est-ce possible de réaliser une boucle avec tous ces éléments ? Une boucle While ?
Merci à vous :)
JB