Macro lente

Bonjour à vous tous,

Voici le code d'une de mes macros :

Sub AjouterRéparation()
'
Application.ScreenUpdating = False
Application.Run "Unprotect"

    Rows("6:6").Insert Shift:=xlDown
    Range("C7:E7").Copy
    Range("C6").PasteSpecial Paste:=xlPasteValues
    Range("G5").AutoFill Destination:=Range("G5:G6")
    Range("L5:N5").AutoFill Destination:=Range("L5:N6")
    Range("F5").AutoFill Destination:=Range("F5:F6")
    Range("U5").AutoFill Destination:=Range("U5:U6")
    Range("Z5:AC5").AutoFill Destination:=Range("Z5:AC6")

Application.Run "protect"

End Sub

Voilà ce quelle fait :

Elle exécute une macro qui déprotége la feuille

Insère une ligne

Copie de C7 a E7 pour le coller dans C6

J'étire des forumes qui sont dans la ligne 5 pour que mes formules apparaissent dans la nouvelle ligne

Exécute une macro qui protège la feuille.

Ce que je ne comprend pas c'est qu'elle prend presque 10 secondes à rouler... Par contre, je l'esseye dans un autre fichier (vierge), ça fonctionne bien.

Est-ce que quelqu'un a une idée de ce qui peut causer se ralentissement. Mon fichier est asser gros avec plusieurs Macro, mais je ne comprends ce qui peut influencer la vitesse de cette macro en particulier.

Merci de votre aide !

Bonsoir,

Tu as sans doute des Private Sub événementiels,

essaye en ajoutant en début de macro

Application.EnableEvents = False

et la même ligne avec True à la fin

pour les formules

        Range("f5:G5").Copy Destination:=Range("f6")
        Range("L5:N5").Copy Destination:=Range("L6")
        Range("U5").Copy Destination:=Range("U6")
        Range("Z5:AC5").Copy Destination:=Range("Z6")

Amicalement

Claude

Bonsoir ,

En effet ta technique fonctionne, j'ai gagner au mois deux secondes. De plus j'ai mis en début de macro Calcul Manuel et à la fin Caclul Automatic et j'ai gagné 5 secondes, donc 5+2 =7 secondes de gagné avec deux petites lignes de codes.

Merci beaucoup !

Rechercher des sujets similaires à "macro lente"