Macro longue a s'executer

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

eMyoL

XLDnaute Nouveau
Salut a tous,

je viens de terminer une macro toute bete qui me fait une "mise en page" de la feuille (redimensionnement des colonnes, lignes, titres, couleurs etc etc), jusque la aucun soucis, elle s'execute trés vite.

Par contre si dans cette macro j'insere une partie "ActiveSheet.PageSetup" ... si je met cette partie en debut de macro elle me ralentie la totalité de l'éxécution et si je la met a la fin la premiere partie s'execute trés rapidement (1 seconde max) et la partie "ActiveSheet.PageSetup" met quasiment 15 secondes pour se finir.

je c/c la partie qui me pose ce probleme de temps.

With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(0.5)
.BottomMargin = Application.InchesToPoints(0.5)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintGridlines = True
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
.Zoom = 62
End With


Ce long moment est peut etre normal mais du coup ca me "plombe" la macro, si vous avez une solution ... merci d'avance 🙂
 
Re : Macro longue a s'executer

Bonjour eMyol,

Essaye peut être d'arreter le rafraîchissement d'écran avec la ligne de code ci dessous à placer en début de macro :

Code:
Application.ScreenUpdating = False

à remettre à "True" à la fin

@+
 
Re : Macro longue a s'executer

Bonjour EMyol, bonjour Pierrot,

Peut-être aussi en mettant le calcul sur Manuel en début de procédure. S'il y a beaucoup de calculs dans la feuille, c'est très efficace:

Code:
Application.ScreenUpdating = False
Application.Calculation = xlManual
With ActiveSheet.PageSetup

End With
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic

@+

Gael
 
Re : Macro longue a s'executer

Salut pierrot et Gael,

merci de ta reponse mais je viens d'essayer et le probleme perdure. :/

Gael, identique, a la seule difference que lorsqu'il attaque ActiveSheet.PageSetup la page devient blanche est reapparait 10 sec plus tard.
 
Dernière édition:
Re : Macro longue a s'executer

Re, bonjour Gael

si tu as beaucoup de lignes, cela parait normal, car toutes les lignes de code qui touchent les marges (tu en as 6), il recalcule tous les sauts de page...pas certain que l'on puisse améliorer...
 
Re : Macro longue a s'executer

ok merci de votre aide, je c/c la macro complete :

Code:
Sub Suveillance_Creation()
'
    Columns("A:A").Select
    Selection.Delete Shift:=xlToLeft
    Columns("B:B").Select
    Selection.Delete Shift:=xlToLeft
    Columns("C:D").Select
    Selection.Delete Shift:=xlToLeft
    Columns("E:E").Select
    Selection.Delete Shift:=xlToLeft
    Columns("H:H").Select
    Selection.Delete Shift:=xlToLeft
    Columns("I:J").Select
    Selection.Delete Shift:=xlToLeft
    Columns("J:DG").Select
    Selection.Delete Shift:=xlToLeft
    Rows("2:2").Select
    Selection.ClearContents
    Rows("1:1").Select
    Selection.Replace What:=" ", Replacement:=""
    Range("J1").Select
    ActiveCell.FormulaR1C1 = "Commentaires"
    Rows("3:27").Select
    Selection.RowHeight = 30
    Range("A2:J2").Select
    With Selection.Interior
        .ColorIndex = 15
        .Pattern = xlSolid
    End With
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "C.P"
    Columns("E:E").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
    End With
    Range("H1").Select
    ActiveCell.FormulaR1C1 = "NAF"
    Columns("H:H").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
    End With
    Columns("I:I").Select
    With Selection
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlBottom
    End With
    
     With ActiveSheet.PageSetup
        .LeftMargin = Application.InchesToPoints(0.5)
        .RightMargin = Application.InchesToPoints(0.5)
        .TopMargin = Application.InchesToPoints(0.5)
        .BottomMargin = Application.InchesToPoints(0.5)
        .HeaderMargin = Application.InchesToPoints(0.5)
        .FooterMargin = Application.InchesToPoints(0.5)
        .PrintGridlines = True
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
        .Zoom = 62
    End With
    
    Cells.Select
    With Selection.Font
        .Name = "Arial"
        .Size = 12
    End With
    Cells.EntireColumn.AutoFit
    Columns("J:J").ColumnWidth = 40


End Sub
 
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
367
B
Réponses
21
Affichages
2 K
B
J
Réponses
6
Affichages
3 K
P
Réponses
6
Affichages
1 K
Pieerre69
P
M
Réponses
11
Affichages
2 K
MattMons
M
Retour