je voudrai bien que vous m'aidez à optimiser le temps d’exécution de la macro suivante qui ' Copie depuis un tableau la premiere ligne puis elle met le resultat de cette ligne ( qui est dans une autre feuille) dans une feuille appelé Feuil2 et puis elle pase à la ligne suivante et agrège les résultats de chaque ligne dans cette feuille , ceci tout en calculant le temps écouplé , le temps restant d'éxecution et le temps total estimé , et renvoie ) la fin le temps effectivement écoulé .
Voila le code :
Code:
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 Sub ElapsedTime() Dim StartTime As Double, EndTime As Double 'Stores start time in variable "StartTime" StartTime = Timer 'Aggregation" i = 2 j = 2 k = 4 Application.ScreenUpdating = False For k = 8 To 11517 Application.StatusBar = (k - 8) * 100 / 11509 & "%" & " " & Format$(Timer - StartTime) & "s ecoulées " & " Temps restant estimé :" & (11517 - k) * Format$(Timer - StartTime) / k & "s" & "Durée total d'éxecution " & Format$(Timer - StartTime) + (11517 - k) * Format$(Timer - StartTime) / k DoEvents Sheets("MP").Select Rows(k).Select Application.CutCopyMode = False Selection.Copy Rows(3).Select ActiveSheet.Paste For i = 2 To 100 For j = 2 To 36 Sheets("Feuil1").Select Cells(i, j) = Cells(i, j) + Worksheets(6).Cells(i, j).Value Next j Next i Next k Application.StatusBar = False Application.ScreenUpdating = True 'Stores end time in variable "EndTime" EndTime = Timer 'Prints execution time in the debug window Debug.Print "Execution time in seconds: ", EndTime - StartTime 'Shows Message Box with elapsed time MsgBox "Execution time in seconds: " + Format$(EndTime - StartTime) End Sub