Bonjour,
J'ai fait un programme VBA permettant d'obtenir la valeur moyenne de 1000 valeurs simulées.
Pour cela je simule 1000 fois une feuille Excel en fonction de différents paramètres pour récupérer la valeur d'une cellule puis je fais la moyenne.
Le souci est que le calcul de beaucoup de pages Excel prend beaucoup de temps, j'ai pu améliorer le code avec des astuces trouvées sur internet mais je n'arrive plus à améliorer le temps d'exécution du programme.
J'ai pensé à faire un programme qui permettrais de ne plus à avoir à passer par les feuilles Excel mais le problème c'est que je risque d'apporter souvent des modifications sur la feuille ce qui obligerai à modifier le code, de cela me prendrait beaucoup de temps car la feuille Excel est assez complexe.
C'est pour ça que je viens vous demander des idées ou des conseils pour améliorer mon code actuel.
Merci beaucoup à tous ce qui pourrait m'aider.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 Public Sub simulation() Dim nbsim As Integer Dim values(1 To 1000) As Long nbsim = 1000 Sheets("Ctrl_T120_A58").Activate Dim debut As Date, temps As Date, fin As Date debut = Time Application.ScreenUpdating = False 'Simulation des feuilles excel puis récupération de la valeur dans un vecteur For I = 1 To nbsim Range("sim").Select ActiveCell.FormulaR1C1 = I ActiveSheet.Calculate values(I) = Range("noinet").Value Next Application.ScreenUpdating = True 'Calcul de la moyenne Dim Sum As Double Sum = 0 For L = 1 To 1000 Sum = Sum + values(L) Next L Range("nbvnet").Value = Sum / 1000 fin = Time temps = fin - debut MsgBox ("C'est fini !" & Chr(10) & "temps de traitement " & temps) End Sub
Partager