La mise en page par VBA d'une feuille est très lent

Aloha

XLDnaute Accro
La mise en page d'une feuille par VBA est très lente

Bonjour,

J'ai enregistré une macro pour formater la mise en page d'un certain nombre de feuilles, et Excel met relativement beaucoup de temps pour cette opération et la feuille "clignote" ±20 fois pendant cette mise en page.

Je suis sûr qu'il y a moyen de simplifier et d'accélérer le code, mais je ne sais pas comment.

Voici le code:
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.803700787401575)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.196850393700787)
.BottomMargin = Application.InchesToPoints(0.196850393700787)
.HeaderMargin = Application.InchesToPoints(0.196850393700787)
.FooterMargin = Application.InchesToPoints(0.196850393700787)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
End With

Merci d'avance pour toute aide (si une aide est possible avec les éléments que je mets à votre disposition!)

Aloha
 
Dernière édition:

Kobaya2

XLDnaute Nouveau
Re : La mise en page par VBA d'une feuille est très lent

Bonjour à tous,

D'accord avec skoobi et piga25, mais même avec Screenupdating = False, ces commandes prendront du temps. J'ai déja observé ça chez moi, mais aucune idée du pourquoi de la chose...
 

Aloha

XLDnaute Accro
Re : La mise en page par VBA d'une feuille est très lent

Bonjour,

Merci pour ces réponses rapides et les tuyaux concordants!

Ce que je dois ajouter: j'exécute 10 fois le même code, avec chaque fois une autre personne; normalement il faudrait un truc comme For Nom1 à Nom10 et il faut seulement 1 fois le code; mais est-ce que cela accélère les opérations.

En ce moment, lorsque j'exécute mon code, il a tout d'un coup (jusqu'ici il ne l'avait pas!) un problème avec ".PrintQuality = 600"!

Quelle peut en être la raison et quel peut en être le remède?
Précision: mon imprimante (HP CP3505) dispose bien de cette qualité.

A+

Aloha
 

Pierrot93

XLDnaute Barbatruc
Re : La mise en page par VBA d'une feuille est très lent

Bonjour à tous

un autre lien sur l'utilisation de la macro excel4 "page.setup" :

Mise en page avec les macros XL4 - - Forum des professionnels en informatique

A priori cette ligne sert à définir la qualité papier :
Code:
PrintQuality = 600?

tu peux sans doute la retirer, je pense que c'est la valeur par défaut, enfin chez moi....

bonne soirée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : La mise en page par VBA d'une feuille est très lent

Re

petite précision, il ne me semble pas que dans ce cas empêcher le rafraichissement d'écran gagne du temps, il semble que la cause soit l'appel répété du pilote de l'imprimante, et ce pour chaque instructions à l'intérieur du bloc "With ActiveSheet.PageSetup"...

@+
 

kiki29

XLDnaute Barbatruc
Re : La mise en page par VBA d'une feuille est très lent

Salut, via le lien donné par Pierrot, soit par exemple
Mise en page centrée en paysage sur du A4 sans entête ni pied de page
Code:
Private Sub Mep()
    ActiveSheet.PageSetup.PrintArea = "$A$1:$J$41"
    Application.ExecuteExcel4Macro "PAGE.SETUP(,,0.3937,0.3937,0.3937,0.3937,,,TRUE,TRUE,2,9,,,,,,,,FALSE,FALSE)"
End Sub
 

Aloha

XLDnaute Accro
Re : La mise en page par VBA d'une feuille est très lent

merci beaucoup
je vais l'essayer demain matin

en y réfléchissant bien, c'est quand-même malheureux, et pas à la gloire de ms, qu'il faut sortir des oubliettes une vieille version de excel parce qu'elle fait mieux les choses que les actuelles!

bonne nuit

aloha
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 520
Messages
2 089 293
Membres
104 091
dernier inscrit
Abdou4242