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

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. 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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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