Taha Hessane
XLDnaute Nouveau
Bonjour,
je dois calculer des moments pour un groupe valeurs disposés sur 4 feuilles excel.
j'ai créer cette macro pour ne pas avoir à faire 4 macro identiques, le problème est que pour la première feuille ça marche, mais pour les suivantes le résultat est faux.
je n'arrive pas à trouver le problème dans ma macro, est ce que quelqu'un aurait une idée,
merci d'avance,
Sub mom()
Dim i As Integer
Dim v As Byte
Dim moy, som, som1, som2, som3, stde, sk, ku As Double
'je déclare les variables que je vais utiliser pour calculer les moments
som = 0
som1 = 0
som2 = 0
som3 = 0
'sélection de la feuille que je souhaite utilisé
'je calcule d'abord la moyenne
For v = 1 To 4
sheets(v).select
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
som = som + Cells(i, 2).Value
Next i
moy = som / (Range("B" & Rows.Count).End(xlUp).Row - 1)
MsgBox " moyenne :" & moy
'calcule de l'écart-type
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
som1 = som1 + (Cells(i, 2).Value - moy) ^ 2
Next i
stde = (som1 / (Range("B" & Rows.Count).End(xlUp).Row - 1)) ^ (1 / 2)
MsgBox " écart-type :" & stde
'calcule de skewness et kurtosis
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
som2 = som2 + (Cells(i, 2).Value - moy) ^ 3
som3 = som3 + (Cells(i, 3).Value - moy) ^ 4
Next i
sk = som2 / ((Range("B" & Rows.Count).End(xlUp).Row - 1) * stde ^ 3)
ku = som3 / ((Range("B" & Rows.Count).End(xlUp).Row - 1) * stde ^ 4)
MsgBox " skewness :" & sk
MsgBox " kurtosis :" & ku
Next v
End Sub
je dois calculer des moments pour un groupe valeurs disposés sur 4 feuilles excel.
j'ai créer cette macro pour ne pas avoir à faire 4 macro identiques, le problème est que pour la première feuille ça marche, mais pour les suivantes le résultat est faux.
je n'arrive pas à trouver le problème dans ma macro, est ce que quelqu'un aurait une idée,
merci d'avance,
Sub mom()
Dim i As Integer
Dim v As Byte
Dim moy, som, som1, som2, som3, stde, sk, ku As Double
'je déclare les variables que je vais utiliser pour calculer les moments
som = 0
som1 = 0
som2 = 0
som3 = 0
'sélection de la feuille que je souhaite utilisé
'je calcule d'abord la moyenne
For v = 1 To 4
sheets(v).select
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
som = som + Cells(i, 2).Value
Next i
moy = som / (Range("B" & Rows.Count).End(xlUp).Row - 1)
MsgBox " moyenne :" & moy
'calcule de l'écart-type
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
som1 = som1 + (Cells(i, 2).Value - moy) ^ 2
Next i
stde = (som1 / (Range("B" & Rows.Count).End(xlUp).Row - 1)) ^ (1 / 2)
MsgBox " écart-type :" & stde
'calcule de skewness et kurtosis
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
som2 = som2 + (Cells(i, 2).Value - moy) ^ 3
som3 = som3 + (Cells(i, 3).Value - moy) ^ 4
Next i
sk = som2 / ((Range("B" & Rows.Count).End(xlUp).Row - 1) * stde ^ 3)
ku = som3 / ((Range("B" & Rows.Count).End(xlUp).Row - 1) * stde ^ 4)
MsgBox " skewness :" & sk
MsgBox " kurtosis :" & ku
Next v
End Sub