[VBA] Mise en page et vitesse

Le
HD
Bonjour,

J'ai une macro qui lance de multiples mise en page sur de nombreuses
feuilles Excel (presque 100). Les traitements sur les données de ces
feuilles ne durent pas longtemps sauf que la mise en page est ce qui m'en
fait perdre le plus

Existe-t-il une astuce pour accélèrer la mise en page des feuilles ? En
sachant que j'ai déja désactivé l' EnableEvents et le ScreenUpdating

Voici en fait une portion de mon code :

With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With

Merci d'avance pour votre aide
--
@+
HD

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
papou
Le #3748341
Bonjour
Tu peux réduire ces lignes en ne conservant que ce que tu appliques
effectivement à ta MEP.
Et, pas sûr mais tu peux également peut-être accélérer ton code en évitant
l'utilisation de With.
Par exemple:
Activesheet.pagesetup.CenterHorizontally = True
Activesheet.pagesetup.FitToPagesWide = 1
Activesheet.pagesetup..FitToPagesTall = 1

Cordialement
Pascal

"HD" news:e7rfog$2usf$
Bonjour,

J'ai une macro qui lance de multiples mise en page sur de nombreuses
feuilles Excel (presque 100). Les traitements sur les données de ces
feuilles ne durent pas longtemps sauf que la mise en page est ce qui m'en
fait perdre le plus...

Existe-t-il une astuce pour accélèrer la mise en page des feuilles ? En
sachant que j'ai déja désactivé l' EnableEvents et le ScreenUpdating...

Voici en fait une portion de mon code :

With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With

Merci d'avance pour votre aide
--
@+
HD




Trirème
Le #3748131
Bonjour HD
Tes 100 feuilles sont elles créées par la commande Sheets.Add suivie de
l'écriture des données dans cette nouvelle feuille ?

J'ai découvert récemment grâce à une suggestion d'Ange Ounis qu'on
pouvait procéder ainsi :
Sheets.Add Type:= _
"C:MonUserMonClasseurModèlesLaFeuille.xlt"
' LaFeuille.xlt peut être un classeur de une ou plusieurs feuilles

Il suffit d'enregistrer ton modèle où tu veux avec les mises en page qui
conviennent dans ton cas.

Cordialement
Trirème

Bonjour,

J'ai une macro qui lance de multiples mise en page sur de nombreuses
feuilles Excel (presque 100). Les traitements sur les données de ces
feuilles ne durent pas longtemps sauf que la mise en page est ce qui m'en
fait perdre le plus...

Existe-t-il une astuce pour accélèrer la mise en page des feuilles ? En
sachant que j'ai déja désactivé l' EnableEvents et le ScreenUpdating...

Voici en fait une portion de mon code :

With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With

Merci d'avance pour votre aide
--
@+
HD




Poster une réponse
Anonyme