XL 2019 Lenteur macro

KTM

XLDnaute Impliqué
Bonjour chers tous
J'utilise une macro pour insérer une formule dans ma colonne "P".
La macro fonctionne bien mais il se trouve qu'elle est une peu lente si les lignes sont trop nombreuses.
Existe t il un moyen de l'accélérer ?
Merci.
VB:
Sub formule()
Dim dl As Long
With Sheets("Grille_de_Disp")
 .Unprotect "2580"
 dl = .Range("A" & Rows.Count).End(xlUp).Row + 1
 .[Q11] = .Range("A" & Rows.Count).End(xlUp).Row + 1
       .Range("P2:P" & dl).FormulaR1C1 = _
        "=SUMIFS(R2C8:INDIRECT(""$H$""&R11C[1]),R2C1:INDIRECT(""$A$""&R11C[1]),RC[-15],R2C2:INDIRECT(""$B$""&R11C[1]),RC[-14],R2C3:INDIRECT(""$C$""&R11C[1]),RC[-13])"
End With
End Sub
 

job75

XLDnaute Barbatruc
Bonjour KTM,

Ce qui me choque surtout c'est cette formule tarabiscotée que vous entrez en colonne P.

Les INDIRECT la rendent volatile ce qui est nuisible, utilisez plutôt :
VB:
Sub formule()
Dim h As Long
With Sheets("Grille_de_Disp")
    .Protect "2580", UserInterfaceOnly:=True
    h = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("P2:P" & h) = "=SUMIFS(H$2:H$" & h & ",A$2:A$" & h & ",A2,B$2:B$" & h & ",B2,C$2:C$" & h & ",C2)"
End With
End Sub
Testez et dites-nous si c'est plus rapide.

A+
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi