Simplification d'une boucle via une macro

Bonjour le forum

Je suis en train de traiter des données et j'aurais besoin d'une petite aide !

En gros j'ai une formule que je dois appliquer à environ 500 000 lignes néanmoins cela me prends une heure pour avoir tous les résultats...

J'ai tenté plusieurs macros pour optimiser le temps de traitement mis mais sans grand résultats

Vos lumières me seraient bien utiles

Je vous joint le fichier en question, la formule à faire tourner est en "L2" (je n'ai pas pu mettre toute mes données à cause de la limite de taille du fichier donc si vous la lancez sur les 14 000 lignes présentes cela ne devrait pas prendre beaucoup de temps, néanmoins j'en ai besoin pour beaucoup plus de données )

Merci à vous et bonne soirée !

9test-forum.xlsx (891.45 Ko)

Bonjour,

à tester,

Sub test()
For i = 2 To 5
  n1 = Range("B" & i).Address
  n2 = Range("D" & i).Address
  Range("L" & i) = Evaluate("SUMIFS(K$" & i & ":K$14130," & n1 & ":B$14130,B2,D$" & i & ":D$14130," & n2 & ")")
Next
End Sub

Bonjour,

Sub test()
    ActiveSheet.Range("L2:L500000").FormulaR1C1 = _
     "=SUMIFS(R2C11:R500000C11,R2C2:R500000C2,RC2,R2C4:R500000C4,RC4)"
End Sub

Un peu longuet à se calculer, mais ça le fait... K ne contenant que des 1, NB.SI.ENS irait peut-être mieux ?

Ça bourre la colonne de formule, et pour ma part j'éviterais, je comptabiliserais les nombres par PDS et date pour en fournir une tableau (sans formule).

Tu dois pouvoir faire avec un TCD aussi (mais là, c'est pas mon truc...)

Codialement.

Bonjour à tous !

Merci à MFerrand et sabV pour vos réponses ! J'ai pu trouver une solution un peu plus rapide

Bonne journée !

Rechercher des sujets similaires à "simplification boucle via macro"