Bonjour;


J'ai un tableau Excel qui avoisine les 50 000 lignes, ce tableau contient des lignes en double dans chaque ligne on trouve un code et une quantité mon objectif c'est de faire la somme des quantités de chaque code et les mettre dans un autre tableau.
Ma macro fonctionne très bien mon soucié qu'elle prend beaucoup de temps ( elle dépasse les 45 min des fois )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Application.ScreenUpdating = False 'juste pour arrêter affichage écran et améliorer le temps d'exécution du macro 
'***********************************Effacer Enciennes Données
With Sheets("feuil3")
.Cells.ClearContents
End With
Dim T
Set dico = CreateObject("Scripting.dictionary")
With Sheets("Quantité produite")
        dernl = .Range("D" & .Rows.Count).End(xlUp).Row
                For j = 1 To dernl
                 x = .Range("A" & j) & ";" & .Range("B" & j) & ";" & .Range("C" & j) & ";" & .Range("D" & j) & ";" & .Range("E" & j)
                 dico(x) = .Range("A" & j) & ";" & .Range("B" & j) & ";" & .Range("C" & j) & ";" & .Range("D" & j) & ";" & .Range("E" & j)
                Next j
Cle = dico.Keys
L = 1
TABLO = .Range("A1", "F" & .Range("F" & .Rows.Count).End(xlUp).Row)
End With
 
With Sheets("feuil3")
    For i = 0 To dico.Count - 1
        T = Split(dico(Cle(i)), ";")
        .Cells(L, 1).Value = Cle(i)
        .Cells(L, 1).Value = T(0)
        .Cells(L, 2).Value = T(1)
        .Cells(L, 3).Value = T(2)
        .Cells(L, 4).Value = T(3)
        .Cells(L, 5).Value = T(4)
        L = L + 1
    Next
dernligne = .Range("D" & .Rows.Count).End(xlUp).Row
 
Dim somme As Variant
For j = 1 To dernligne
   For i = LBound(TABLO, 1) To UBound(TABLO, 1)
             If .Cells(j, 5) = TABLO(i, 5) And .Cells(j, 4) = TABLO(i, 4) Then
                 somme = somme + TABLO(i, 6)
                .Cells(j, 6) = somme
              End If
      Next i
     somme = 0
 Next j
End With
Je compte sur votre aide , Merci d'avance