Macro pour mise en forme sur classeur entier

  • Initiateur de la discussion Initiateur de la discussion Olivier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
291
Réponses
0
Affichages
1 K
Retour