Macro pour mise en forme sur classeur entier

O

Olivier

Guest
Bonjour à tous,

J'éspère que meme en periode de fete, quelqu'un pourra m'aider.

J'aurai besoin, avant d'imprimer un classeur entier, de mettre en forme toutes les feuilles contenues dans le classeur (cacher des colonnes, ajuster la print area, etc).

Voici ma formule (désolé je suis débutant) :

ActiveWorkbook.Worksheets.Select

For Each xWorksheet In ActiveWorkbook.Worksheets
Range("G:G,I:I,J:J,M:M").Select
Range("M1").Activate
Selection.EntireColumn.Hidden = True
ActiveSheet.PageSetup.PrintArea = "$B$1:$L$59"
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = "$B$1:$L$59"
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 55
End With
Next xWorksheet

Est-ce que quelq'un peut m'aider ?

Merci d'avance.
 
Y

Yeahou

Guest
Bonjour

pour que cela puisse fonctionner, il faut sélectionner la feuille
ajoute une ligne
xWorksheet.select
juste aprés for each

pour info, la ligne ActiveWorkbook.Worksheets.Select ne sert à rien
voici ta macro re écrite qui devrait fonctionner correctement

For Each xWorksheet In ActiveWorkbook.Worksheets
xWorksheet.select
Range("G:G,I:I,J:J,M:M").Hidden = True
ActiveSheet.PageSetup.PrintArea = "$B$1:$L$59"
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintTitleRows = ""
.PrintTitleColumns = ""
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 55
End With
Next xWorksheet

cordialement, A+
 

Discussions similaires

Statistiques des forums

Discussions
312 972
Messages
2 094 051
Membres
105 928
dernier inscrit
mbitso