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 180
Messages
2 085 995
Membres
103 082
dernier inscrit
adri77