Problème définition d’une zone d’impression

Bonjour à toutes et tous,

J’ai un tableau que je voudrai imprimer mais j’ai un souci pour la mise en page.
Après avoir défini les marges, impression sur chaque page des 5 premières lignes, impression jusqu’à la dernière ligne remplie, je voudrai qu’il m’imprime que 28 lignes par pages, mais je ne sais pas comment faire, car il imprime toujours sur 1 seule feuille.
Si quelqu’un à une idée.
Merci

Private Sub Impression_A4_Click()

Dim DerLig As Long

'Impression au format A4

Set aff = Sheets("affectation")

With aff

   DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row

          With .PageSetup

                  .PrintTitleRows = "$A$1:$F$5"				'Copie 5 lignes sur chaque page
                  .PrintArea = "A1:F" & DerLig				‘Impression jusqu’à dernière ligne
                  .PaperSize = xlPaperA4					'Format A4
                  .Orientation = xlPortrait					'Impression portrait
                  .LeftMargin = Application.InchesToPoints(0.25)		'définition des marges
                  .RightMargin = Application.InchesToPoints(0.25)
                  .TopMargin = Application.InchesToPoints(0.25)
                  .BottomMargin = Application.InchesToPoints(0.25)
                  .Zoom = False
                  .FitToPagesWide = 1					'adaptation largeur feuille

         End With

       .PrintPreview

End With

End Sub


Configuration: Windows / Firefox 72.0

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour mod77,
    je vais essayer de l'adapter à ma macro.
    Merci
    1. Bonjour, après plusieurs essais, je n'arrive pas à inclure la macro.
      1. Contributeur
        bonjour, peux-tu partager ce que tu as essayé, et décrire pourquoi cela ne convenait pas?
    2. Bonjour,
      J'ai essayer d'inclure la macro suivante :

      ActiveSheet.DisplayAutomaticPageBreaks = False     'Suppression des sauts de page

      For i = 28To 100 Step 28 'Saut de page après 28 lignes
      ActiveWindow.SelectedSheets.HPageBreaks.Add before:=Rows(i + 1)
      Next i


      Mais je ne sais où l'inclure dans ma macro.
      1. Contributeur
        peut-être ainsi:
        Option Explicit
        
        Private Sub Impression_A4_Click()
        Dim DerLig As Long, i As Long, aff As Worksheet
        'Impression au format A4
        Set aff = Sheets("affectation")
        With aff
            DerLig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
            .DisplayAutomaticPageBreaks = False
            For i = 28 To DerLig Step 23 'Saut de page après 28 lignes
                .HPageBreaks.Add before:=Rows(i + 1)
            Next i
            With .PageSetup
                          .PrintTitleRows = "$A$1:$F$5"             'Copie 5 lignes sur chaque page
                          .PrintArea = "A1:F" & DerLig              'Impression jusqu’à dernière ligne
                          .PaperSize = xlPaperA4                    'Format A4
                          .Orientation = xlPortrait                 'Impression portrait
                          .LeftMargin = Application.InchesToPoints(0.25)        'définition des marges
                          .RightMargin = Application.InchesToPoints(0.25)
                          .TopMargin = Application.InchesToPoints(0.25)
                          .BottomMargin = Application.InchesToPoints(0.25)
                          .Zoom = False
                          .FitToPagesWide = 1                   'adaptation largeur feuille
                 End With
               .PrintPreview
        End With
        End Sub
        
    3. Bonjour yg_be,
      J'ai essayer la solution proposée, mais il imprime toute la feuille sur une seule page.
      Merci quand même.