Sub ButtonPrintStats()
Dim feuilles, zones, LMargin, RMargin, TMargin, BMargin, etat(), n%
feuilles = Array("Stats population", "Stats métiers", "Stats générales")
zones = Array("C4:M26", "D5:N27", "E6:O28")
LMargin = Array(0.7, 0.8, 0.9)
RMargin = Array(0.1, 0.2, 0.3)
TMargin = Array(0.7, 0.8, 0.9)
BMargin = Array(0.7, 0.8, 0.9)
ReDim etat(UBound(feuilles))
For n = 0 To UBound(feuilles)
With Worksheets(feuilles(n)).PageSetup
etat(n) = .Parent.Visible 'mémorise l'état
.Parent.Visible = xlSheetVisible 'si la feuille est masquée
.PrintArea = zones(n)
.LeftMargin = Application.InchesToPoints(LMargin(n)) 'Marge gauche
.RightMargin = Application.InchesToPoints(RMargin(n)) 'Marge droite
.TopMargin = Application.InchesToPoints(TMargin(n)) 'Marge haut de page ou top
.BottomMargin = Application.InchesToPoints(BMargin(n)) 'Marge bas de page si nécessaire
.Orientation = xlLandscape 'Paysage
End With
Next
Worksheets(feuilles).PrintPreview 'Aperçu pour tester
'Worksheets(feuilles).PrintOut 'Pour imprimer
'---Remise en l'état initial---
For n = 0 To UBound(feuilles)
Worksheets(feuilles(n)).Visible = etat(n)
Next
End Sub