Methode plus rapide de calcul?

acmilan2028 Messages postés 11 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
bjr je veux calculer la somme de certains cellules selon trois condition j'ai reussi le faire avec une macro mais le blem c que le calcul prend un temps énorme a cause de nombre de ligne ki est eleve presque 6000 lignes
voila le code que j'ai pu faire

Sub calculer_la_somme()

Sheets("contact").Select
i = Range("A1").End(xlDown).Row

Dim somme As Long

For k = 2 To i
somme = 0
For l = 2 To i
If Range("F" & k).Value = Range("F" & l).Value Then
If Range("D" & k).Value = Range("D" & l).Value Then
If Range("E" & k).Value = Range("E" & l).Value Then

somme = somme + Range("C" & l).Value
End If
End If
End If

Next l
Range("G" & k).Value = somme

Next k

End Sub






si vous avez une autre solution ou amelioration SVP


cordialement
A voir également:

2 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,

effectivement...

mettre un extrait (2000 lignes) du classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse

au passage
k=L =2
donc
If Range("F" & k).Value = Range("F" & l).Value Then
If Range("D" & k).Value = Range("D" & l).Value Then
If Range("E" & k).Value = Range("E" & l).Value Then
tu compares les m^mes cellules ?
0
acmilan2028 Messages postés 11 Statut Membre 1
 
bonjour
voila le fichier que tu m'as demander

https://www.cjoint.com/?3Djj7DTIeAO

oui effectivement je compare deux cellule de mm lignes pour calculer le nombre de câble pour chaque outillage dans chaque vb et bout et puis je vais supprimer les doublons hhh

si vous pouvez proposez qlq chose plus pratique je serai tres heureux :D

cordialement
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Je veux bien essayer de t'aider MAIS

oui effectivement je compare deux cellule de mm lignes

NON: tu compares les mêmes cellules
Range("F" & k).Value = Range("F" & l).
pas très sérieux

Pourquoi 2 compteurs K et L puisqu' ils semblent toujours égaux ?
0