bonjour à tous
je suis actuellement en train de réaliser une feuille de calcul excel pour l'analyse de données issues d'analyses chimiques. Il y a deux nombreuses action à réaliser et de façon à automatiser cela je code en vba.
Mais je bloque sur un truc :
dans mon analyse je dois construire un tableau comme ceci :
yi / xi / xi² / yrl / yi-yrl /(yi-yrl)² / xi-xb /(xi-xb)
ech1
ech2
...
...
ech n
somme
moyenne
voici le code utilisé pour le remplissage des n lignes (certaines variable sont déclarées bien plus haut dans mon code)
jusqu'ici tout fonctionne bien, mais j'aimerais pouvoir rajouter les deux lignes pour calculer les sommes et moyennes de chaque colonne
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 Dim tabstat() As Double 'dimensionnement du tableau' ReDim tabstat(1 To Nbrep, 1 To 8) 'definition de x et y' Dim cely As Range Dim celx As Range Set celx = Range(Cells(2, 2), Cells(Nbrep + 1, 2)) col = 3 Set cely = Range(Cells(2, col), Cells(Nbrep + 1, col)) Dim a As Double Dim b As Double a = WorksheetFunction.Slope(cely, celx) b = WorksheetFunction.Intercept(cely, celx) Dim xb As Long Dim yrl As Long Dim yb As Long Dim it As Integer Dim jt As Integer xb = WorksheetFunction.Average(celx) yb = WorksheetFunction.Average(cely) For it = 1 To UBound(tabstat, 1) tabstat(it, 1) = cely(it) tabstat(it, 2) = celx(it) tabstat(it, 3) = (celx(it)) ^ 2 tabstat(it, 4) = a * celx(it) + b tabstat(it, 5) = tabstat(it, 1) - tabstat(it, 4) tabstat(it, 6) = (tabstat(it, 5)) ^ 2 tabstat(it, 7) = tabstat(it, 2) - xb tabstat(it, 8) = (tabstat(it, 7)) ^ 2 Next it
le code serait donc quelque chose du genre
J'ai essayé en utilisant les worksheetFunction et applicationFunction mais j'ai un problème pour définir mes plages de données (celles-ci doivent pouvoir comporter un nombre de ligne variable)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 redim preserve tabstat (UBound(tabstat, 1) +2 , 8) for jt =1 to Ubound(tabstat,2) tabstat (Ubound (tabstat,1)-1 , jt) = SOMME DES LIGNES PRECEDENTES (pour une colonne jt) tabstat (Ubound (tabstat,1)-1 , jt) = MOYENNE DES LIGNES PRECEDENTES (pour une colonne jt) next jt
J'espère avoir été assez précis et merci d'avance
Partager