Somme Matricielle en VBA pour optimiser temps de réponse

ASTER

XLDnaute Nouveau
Salut,

Je cherche désespéremment à optimiser une somme matricielle dans Excel sur une grande plage de cellules.

Détail du cas :

Colonne A : Dates
Colonne B : Produits
Colonne C : Montants

En colonne D, je souhaite faire la somme à chaque ligne, des montants avec les critères suivants :
Tous les montants dont la date est <= à la date de la ligne
Tous les montants dont le produit est = au produit de la ligne

Je m'en sors avec une formule de somme matricielle, mais sur 35000 lignes, ca bug !

Est ce que le VBA peut me sauver et comment ?

Merci beaucoup de votre aide
 

ROGER2327

XLDnaute Barbatruc
Re : Somme Matricielle en VBA pour optimiser temps de réponse

Bonjour ASTER
Peut-être quelque chose comme ça :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim oDat, u&, i&, j&, s#
   With Sheets(1) [COLOR="Green"]'Feuille a traiter[/COLOR]
      With .[A1].Resize([A1].Offset(.Rows.Count - 1, 0).End(xlUp).Row, 4)
         oDat = .Value
         u = UBound(oDat, 1)
         For i = 2 To u
            oDat(i, 4) = 0
            For j = 2 To u
               oDat(i, 4) = oDat(i, 4) + (oDat(j, 1) <= oDat(i, 1)) * (oDat(j, 2) = oDat(i, 2)) * oDat(j, 3)
            Next
         Next
         .Value = oDat
      End With
   End With
End Sub[/B][/COLOR]
Mais... ...pas de support donc pas de test.​
ROGER2327
#2854
 

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 369
Membres
102 875
dernier inscrit
Jimbo2374