Bonjour,

voilà j'ai un petit bout de code qui me prend 24s pour s'executer alors que le code juste après fais 28800*6 calculs en 0.5 secondes donc j'aimerai optimiser celà.

Je passe mes détails mais en gros j'ai 7 ListBox à 2 colonnes ( de "ListBoxGPE1" à "ListBoxGPE7") et je regarde ce qui est sur la colonne de gauche, soit "Production" ou "Arret" pour l'instant.
Sur la colonne de droite, il y a les temps (en minutes) de fonctionnement

Exemple

ListBoxGPE2

Production 1000
Arret 440

je fais un calcul toutes les 3 secondes sur 24h d'où les 28800 valeurs

Enfin je mets les debit de fonctionnement sur un tableau qui s'appelle "DebitEntree" donc voilà

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
For d = 1 To 7
    a = 0
    b = 0
 
        For i = 0 To 27799
 
            If i * 0.05 = b + Me.Controls("ListBoxGPE" & d).List(a, 1) Then
                b = b + Me.Controls("ListBoxGPE" & d).List(a, 1)
                a = a + 1
            End If
            If Me.Controls("ListBoxGPE" & d).List(a, 0) = "Production" Then
                DebitEntree(i, 0) = DebitEntree(i, 0) + Cells(20, 3 + 2 * d).Value
            End If
            If Me.Controls("ListBoxGPE" & d).List(a, 0) = "Arret" Then
                DebitEntree(i, 0) = DebitEntree(i, 0) + 0
            End If
        Next i
Next d
J'aimerai savoir c'est quelle partie qui ralentit mon code

Merci de votre aide