IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Lenteur mise en page [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai enregistré une macro pour faire une mise en page et je n'ai laissé que l'essentiel. Mais à l’exécution, elle est très lente.
    Est-ce normal? Y a-t-il un autre moyen pour accélérer le code?
    Ce bout de code dure 19 secondes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    temps = Timer
        Sheets("A").Select
        ActiveSheet.PageSetup.PrintArea = "$A$1:$M$30"
        With ActiveSheet.PageSetup
            .LeftMargin = Application.InchesToPoints(0.708661417322835)
            .RightMargin = Application.InchesToPoints(0)
            .TopMargin = Application.InchesToPoints(0.590551181102362)
            .BottomMargin = Application.InchesToPoints(0.393700787401575)
            .Orientation = xlLandscape
            .Zoom = 80
        End With
     
        MsgBox Timer - temps
        End With
    Je vous remercie.

    Cordialement,

    Re,

    En rajoutant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    au début du code la durée s'est améliorée sensiblement (t=13s).
    Peut-on encore améliorer cette durée?

    Merci.

    Bonne journée!

    Cordialement,
    Dernière modification par AlainTech ; 01/05/2013 à 18h49. Motif: Fusion de 2 messages

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Suite à mes recherches, j'ai trouvé ceci:http://www.developpez.net/forums/d55...ge-macros-xl4/.
    Sur cette base, j'ai utilisé ce code qui a amélioré le temps d’exécution de 13s à 3,9s pour une feuille et pour 3 feuilles de 40s à 11,76s.
    Pourrait-on encore l'améliorer?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub mise_en_page()
    Application.ScreenUpdating = False
    temps = Timer
     
        With Sheets("A")
        ActiveSheet.PageSetup.PrintArea = "$A$1:$M$30"
     
        Application.ExecuteExcel4Macro "PAGE.SETUP(,,0.708,0.0,0.590,0.198,,,TRUE,TRUE,2,9,80,,,,,,,FALSE,FALSE)"
        End With
        'MISE.EN.PAGE(en_tête; pied_pg; marge_gch;marge_dr;marge_haut;marge_bas; no_lig_col; quadrillage;centr_hor; centr_vert;
       'orient;papier; échelle; no_pg; ordre_impr; cellules_nb; qualité;marge_en_tête; marge_pied_pg; annot; brouillon)
     
        MsgBox Timer - temps
    End Sub
    Cordialement,

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour.

    Les temps sont déjà divisés par trois, que veux-tu de plus ?

    Normalement les marges n'ont pas à être définies à chaque impression, elles peuvent être enregistrées une fois pour toutes, non ?

    Sinon, à part changer l'ordinateur pour un plus puissant ! …

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Marc-L,

    Etant débutant, c'est une question que j'ai posé à ceux qui maitrise mieux que moi le VBA.
    Vu le nombre de participant et vu ta réponse, je considère que cette discussion est résolue.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6+API][Impression] Mise en page
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/09/2004, 17h11
  2. [CR.NET][VS.NET] mise en page et sections
    Par guignol dans le forum SDK
    Réponses: 8
    Dernier message: 06/08/2004, 15h07
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. [CR] Mise en page
    Par akolyto dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/10/2003, 12h22
  5. [mise en page] pour bien indenter son code
    Par bihorece dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/08/2003, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo