Je cherche à calculer l'écarttype par rapport à une moyenne.
Je rappelle la formule :

racine(1/n * somme(xi - xmoyenne)), n : nombre de données, xi : valeur de chaque donnée, xmoyenne : c'est la moyenne de l'ensemble des données.

J'ai une boucle for qui parcours chaque ligne d'un fichier.
Si la ligne contient une donnée, alors il compte cette donnée comme une donnée supplémentaire et rajoute la donnée dans le tableau sous vba.

J'ai plusieurs problèmes :
- tant que la boucle n'a pas terminé, je ne peux pas faire la moyenne, puisqu'à la fin de la bouche j'ai le nombre de données et la moyenne se calcule par somme de toutes les données / le nombre de données.
- si je n'ai pas la moyenne, je ne peux pas calculer l'écarttype
- de plus mon tableau vba ne sera pas rempli complètement, il sera rempli qu'à partir du moment où la condition "ligne contient une donnée".

Je vous montre un aperçu du code résumé moitié langue humaine moitié langue machine

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
 
for boucle = 3 to derniere_cellule
if ligne.cellule X contient date et ligne.cellule Y contient date then
délai =  différence entre X et Y + delai
compteur_delai = compteur_delai + 1
'le numéro de tableau correspond au numéro de boucle
tableau(boucle) = différence entre X et Y
else
'on applique faux pour ne comptabiliser les éléments nuls du tableau qui fausseraient l'écarttype.
tableau(boucle) = faux
next boucle
 
moyenne des données = delai / compteur_delai
 
for boucle = 3 to derniere_cellule
if tableau(boucle) <> "faux" then
somme_ecarttype = ((tableau(boucle) - moyennedesdonnées) ^2) + somme_ecarttype
next boucle
ecarttype = racine(somme_ecarttype / compteur_delai)
Je ne sais pas si je suis clair mais je pense qu'on peut simplifier