OVH Cloud OVH Cloud

Macro lente

2 réponses
Avatar
Dante Huapaya
Bonjour,

(Excel 97, R2)
J'ai une macro que fais la mise en page et l'impression d'une feuille,
mais je trouve qu'elle est lente, est il possible de l'optimizer?
voici le code:

Sub imp_rapport()
Dim i As Integer
'Ajuste la largeur des colonnes et selectionne la zone d'impression
Sheets("Octrois").Select
Columns("A:D").ColumnWidth = 10
Columns("E:E").ColumnWidth = 30
Columns("F:F").ColumnWidth = 10
Columns("G:G").ColumnWidth = 20
Columns("H:H").ColumnWidth = 13
Columns("I:J").ColumnWidth = 11
i = Range("A1").End(xlDown).Row
Range("A1:J" & i).Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$J$" & i
With ActiveSheet.PageSetup 'paracheve la mise en page
.TopMargin = Application.InchesToPoints(0.68)
.HeaderMargin = Application.InchesToPoints(0.48)
.BottomMargin = Application.InchesToPoints(0.68)
.FooterMargin = Application.InchesToPoints(0.48)
.Orientation = xlLandscape
.PaperSize = xlPaperLetter
.Zoom = 88
.CenterHorizontally = True
.CenterVertically = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
With ActiveSheet
ActiveWindow.SelectedSheets.PrintPreview 'affiche l'impression
.PageSetup.PrintArea = False 'efface la zone d'impression
.DisplayPageBreaks = False 'efface les sauts de page
End With
End Sub


Merci de vos conseils

Dante Huapaya

2 réponses

Avatar
michdenis
Bonjour Dante,

La section de la mise en page de ta procédure est réputée pour être lente et
il n'y a pas grand chose à faire avec cette méthode.

Si tu vas sur http://www.excelabo.net, tu trouveras ce classeur que j'ai
commis sur le sujet ...

http://www.excelabo.net/compteclic.php?nom=Impression personnalisée rapide


Salutations!



"Dante Huapaya" a écrit dans le message de news:

Bonjour,

(Excel 97, R2)
J'ai une macro que fais la mise en page et l'impression d'une feuille,
mais je trouve qu'elle est lente, est il possible de l'optimizer?
voici le code:

Sub imp_rapport()
Dim i As Integer
'Ajuste la largeur des colonnes et selectionne la zone d'impression
Sheets("Octrois").Select
Columns("A:D").ColumnWidth = 10
Columns("E:E").ColumnWidth = 30
Columns("F:F").ColumnWidth = 10
Columns("G:G").ColumnWidth = 20
Columns("H:H").ColumnWidth = 13
Columns("I:J").ColumnWidth = 11
i = Range("A1").End(xlDown).Row
Range("A1:J" & i).Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$J$" & i
With ActiveSheet.PageSetup 'paracheve la mise en page
.TopMargin = Application.InchesToPoints(0.68)
.HeaderMargin = Application.InchesToPoints(0.48)
.BottomMargin = Application.InchesToPoints(0.68)
.FooterMargin = Application.InchesToPoints(0.48)
.Orientation = xlLandscape
.PaperSize = xlPaperLetter
.Zoom = 88
.CenterHorizontally = True
.CenterVertically = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
With ActiveSheet
ActiveWindow.SelectedSheets.PrintPreview 'affiche l'impression
.PageSetup.PrintArea = False 'efface la zone d'impression
.DisplayPageBreaks = False 'efface les sauts de page
End With
End Sub


Merci de vos conseils

Dante Huapaya
Avatar
Dante Huapaya
Merci de ta réponse Denis, j'apprécie

Bonne journée

Dante Huapaya


Bonjour Dante,

La section de la mise en page de ta procédure est réputée pour être lente et
il n'y a pas grand chose à faire avec cette méthode.

Si tu vas sur http://www.excelabo.net, tu trouveras ce classeur que j'ai
commis sur le sujet ...

http://www.excelabo.net/compteclic.php?nom=Impression personnalisée rapide


Salutations!



"Dante Huapaya" a écrit dans le message de news:

Bonjour,

(Excel 97, R2)
J'ai une macro que fais la mise en page et l'impression d'une feuille,
mais je trouve qu'elle est lente, est il possible de l'optimizer?
voici le code:

Sub imp_rapport()
Dim i As Integer
'Ajuste la largeur des colonnes et selectionne la zone d'impression
Sheets("Octrois").Select
Columns("A:D").ColumnWidth = 10
Columns("E:E").ColumnWidth = 30
Columns("F:F").ColumnWidth = 10
Columns("G:G").ColumnWidth = 20
Columns("H:H").ColumnWidth = 13
Columns("I:J").ColumnWidth = 11
i = Range("A1").End(xlDown).Row
Range("A1:J" & i).Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$J$" & i
With ActiveSheet.PageSetup 'paracheve la mise en page
.TopMargin = Application.InchesToPoints(0.68)
.HeaderMargin = Application.InchesToPoints(0.48)
.BottomMargin = Application.InchesToPoints(0.68)
.FooterMargin = Application.InchesToPoints(0.48)
.Orientation = xlLandscape
.PaperSize = xlPaperLetter
.Zoom = 88
.CenterHorizontally = True
.CenterVertically = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
With ActiveSheet
ActiveWindow.SelectedSheets.PrintPreview 'affiche l'impression
.PageSetup.PrintArea = False 'efface la zone d'impression
.DisplayPageBreaks = False 'efface les sauts de page
End With
End Sub


Merci de vos conseils

Dante Huapaya