Insertion d'un saut de page automatique
Bonjour à tous, je suis novice en VBA, d'ou ma présence sur ce Forum
Voila, depuis un tableau situé sur une autre feuille (N°3), j'insère des lignes de données (dans un bon de commande)
Etant donné que je ne connais jamais le nombre de lignes qui va être inséré, j'aimerai qu'à partir d ela ligne 60 (par exemple) on puisse insérer un saut de page automatique et sauter x lignes (13 par exemples) avant de redémarrer l'insertion. et cela autant de fois que nécessaire pour créer une mis en page correcte.
Voici mon code d'insertion des données dans mon formulaire que j'appele PO en feuille N°4 (Il fonctionne même si un peu lent)
Je vous remercie par avance pour votre aide
_________________________________________________________________________________________________________________________________________________________
Private Sub CommandButton1_Click()
Dim Ligne As Range
Dim dl As Long 'Dernière ligne de la page PO
Dim Numero_Ligne As Long 'N° de ligne de commande pour la colonne B du PO
Numero_Ligne = 0 'On met à 0 le numero de ligne
'On teste si le numéro de commande a été sélectionné
If Range("J4") = "" Then
MsgBox ("Falta el N° de pedido")
Else
'On entre la date du jour dans le PO
Worksheets(4).Range("G12") = Now()
'On entre le numéro de commande dans le PO
Range("B12") = Range("J4")
End If
'****************************************************
'Boucle de recherche des lignes de commandes
For Each Ligne In Worksheets(3).Range("Cdes") 'Commande est le nom de la Cbx
If Ligne = Range("J4") Then
Numero_Ligne = Numero_Ligne + 1
If Worksheets(4).Range("C27") = Empty Then
dl = 27
Else
dl = Worksheets(4).Range("C26").End(xlDown).Row + 1
Worksheets(4).Rows(dl + 1).EntireRow.Insert
End If
'Afficher les articles
Worksheets(4).Range("B15") = Ligne.Offset(0, 2) 'on se décale de 2 colonnes pour aller cherche la date
Worksheets(4).Range("B" & dl) = Numero_Ligne 'on place le numero de ligne
Worksheets(4).Range("B" & dl).Borders.Value = 1 'on met une bordure
Worksheets(4).Range("C" & dl) = Ligne.Offset(0, 3) 'on se décale de 3 colonnes pour aller cherche la référence
Worksheets(4).Range("C" & dl).Borders.Value = 1
Worksheets(4).Range("D" & dl) = Ligne.Offset(0, 4)
Worksheets(4).Range("D" & dl).Borders.Value = 1
Worksheets(4).Range("E" & dl) = Ligne.Offset(0, 5)
Worksheets(4).Range("E" & dl).Borders.Value = 1
Worksheets(4).Range("F" & dl) = Ligne.Offset(0, 6)
Worksheets(4).Range("F" & dl).Borders.Value = 1
Worksheets(4).Range("G" & dl) = Ligne.Offset(0, 7)
Worksheets(4).Range("G" & dl).Borders.Value = 1
Worksheets(4).Range("H" & dl) = Ligne.Offset(0, 8)
Worksheets(4).Range("H" & dl).Borders.Value = 1
End If
Next Ligne
End Sub
Bonsoir,
pourquoi ne pas laisser Excel gérer le découpage de l'impression tout seul, vous avez une feuille qui prend un certain nombre de ligne, plus que ce que peut contenir une feuille à l'impression, alors dans les paramètre d'impression il suffit de prendre l'option ajuster et choisir une feuille en largeur et ne mettre aucune donnée dans la hauteur.
Donc s'il faut trois page en hauteur Excel s'occupe du découpage...
@ bientôt
LouReeD