Imprimer par macro et gérer les sauts de page

troopers87

XLDnaute Occasionnel
Bonjour à tous,

mon boss me demande de lui créer une macro qui lui permette d'imprimer en un clic et en pdf les rapports mensuels de la boîte : jusque là, pas de souci. Là où se pose mon problème, c'est que la mise en place préalable de mes sauts de page (zone d'impression) change à chaque fois que je lance ma macro : je me retrouve avec 10 pages avec quelques bouts de feuilles au lieu de mes rappors tout beaux, tout propres... et bien cadrés.

Voici le code que j'utilise actuellement, malheureusement, pour des raisons de confidentialité, je ne peux pas télécharger le fichier en question :

Code:
Public Sub Test1()
  ' Imprimer seulement la feuille en cours
  Sheets("Services").Select
  
  With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.393700787401575)
.RightMargin = Application.InchesToPoints(0.393700787401575)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA3
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 94
.PrintErrors = xlPrintErrorsDisplayed
End With
  
  SaveAsPDF "pôle_cam.pdf"
End Sub

PS : l'export en pdf ne se fait pas par ce simple code, mais par la mise en place d'un autre extrêmement compliqué, et que je n'ai pas copié ici pour des raisons de lisibilité. Cela pourra se faire au besoin ;)
 

troopers87

XLDnaute Occasionnel
Re : Imprimer par macro et gérer les sauts de page

Bonjour et merci pour ton intérêt,

j'ai rajouté 2 lignes de codes, mais malheureusement les "mauvais" sauts de page se remettent en place juste avant l'impression...

Public Sub Test1()

' Imprimer les feuilles
Sheets(Array("Pôle", "Services")).Select

With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.393700787401575)
.RightMargin = Application.InchesToPoints(0.393700787401575)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA3
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed

Set Sheets("Pôle").HPageBreaks(1).Location = Range("A55")
Sheets("Pôle").PageSetup.PrintArea = "$A$1:$R$110"

End With

SaveAsPDF Sheets("Pôle").Range("J6").Value
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof