Bonjour,
J'ai un programme excel qui doit realiser des "somme si" environ 60000 fois.
J'ai essayé 2 types de codes differents sous vba, mais à chaque fois, l'execution est trop longue et la macro bug avant de pouvoir se terminer :
Code 1 :
1 2 3 4
| For i = 2 To nbLigneSynthese2 + 1
Synthese.Cells(i, 7) = Application.WorksheetFunction.SumIf(Reglements.Cells(2, colonneBPReglements).Resize(nbLigneReglements, 1), Synthese.Cells(i, 7), Reglements.Cells(2, colonneMontantReglements).Resize(nbLigneReglements, 1))
Next i |
Code 2 :
Synthese.Cells(i, 7).resize(nbLigneSynthese2,1) = Application.WorksheetFunction.SumIf(Reglements.Cells(2, colonneBPReglements).Resize(nbLigneReglements, 1), Synthese.Cells(i, 7).resize(nbLigneSynthese2,1), Reglements.Cells(2, colonneMontantReglements).Resize(nbLigneReglements, 1))
(Je ne suis pas sur que le code 2 marche..)
Pour info : la variable nbLigneSynthese2 equivaut à peu pres a 60000 lignes.
Et Reglements ainsi que Synthese sont les noms de feuilles excel.
Les autres variables sont des variables globales.
Auriez vous une idée pour que j'arrive à éxecuter ce type de code??
Merci
Partager