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

  • Initiateur de la discussion Initiateur de la discussion Aloha
  • 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 !

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:
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...
 
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
 
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
@+
 
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"...

@+
 
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
 
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:
- 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

Discussions similaires

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