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+
 

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16