Bonjour à tous
La macro suivante est lente... Presque 2 secondes pour 114 lignes. Auriez-vous une astuce ?
Merci d'avance
La macro suivante est lente... Presque 2 secondes pour 114 lignes. Auriez-vous une astuce ?
VB:
Sub Mise_En_Page2() 'Mise en page des onglets avant impression
Dim Derlign As Integer ' Réf de la dernière ligne utilisée
Dim LastLign As Integer ' Réf de la dernière ligne
Application.ScreenUpdating = False
If ActiveSheet.Name <> "Liste" And ActiveSheet.Name <> "Indemnités Km" _
And ActiveSheet.Name <> "Loyers" And ActiveSheet.Name <> "Salaires" And ActiveSheet.Name <> "Feuille En-Tête" Then
LastLign = 6
Derlign = 6
LastLign = Range("A:K").Find("*", , , , xlByRows, xlPrevious).Row 'Recherche de la dernière ligne renseignée
Select Case LastLign
Case Is < 51
Derlign = LastLign + 3
Case Is = 54
Derlign = LastLign
Case Is < 104
Derlign = LastLign + 3
Case Is = 107
Derlign = LastLign
Case Else
Derlign = LastLign + 3
End Select
ActiveSheet.PageSetup.PrintArea = "A1:J" & Derlign ' Définition de la zone d'impression avec variable. La colonne "OK" n'est pas imprimée
With ActiveSheet.PageSetup
.PrintTitleRows = "$6:$6" 'Ligne(s) à reproduire sur chaque page
.LeftFooter = "" 'Pied de page partie gauche
.CenterFooter = "&G&A" & Chr(10) & "&G&F" 'Pied de page partie centrale
.RightFooter = "&10&P / &N" 'Pied de page partie droite
.LeftMargin = Application.InchesToPoints(0.590551181102362) 'Marge gauche
.RightMargin = Application.InchesToPoints(0.590551181102362) 'Marge droite
.TopMargin = Application.InchesToPoints(0.590551181102362) 'Marge haute
.BottomMargin = Application.InchesToPoints(0.590551181102362) 'Marge basse
.HeaderMargin = Application.InchesToPoints(0.196850393700787) 'Marge en-tête
.FooterMargin = Application.InchesToPoints(0.196850393700787) 'Marge pied de page
.PrintHeadings = False 'Pas d'impression d'en-tête de lignes et colonnes
.CenterHorizontally = True 'Centrage horizontal
.CenterVertically = False 'Pas de centrage vertical
.Orientation = xlLandscape 'Orientation paysage
.Draft = False 'Pas d'impression des images
.Zoom = False 'Pas de zoom
.FitToPagesWide = 1 'Impression 1 page en largeur
.FitToPagesTall = False 'Impression plusieurs pages en longueur si nécessaire
End With
End If
Application.ScreenUpdating = True
End Sub