XL 2010 Macro qui ne fonctionne pas, help !

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Bonjour Taha

A tester :
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

'sélection de la feuille que je souhaite utilisé
'je calcule d'abord la moyenne

For v = 1 To 4
sheets(v).select

som = 0
som1 = 0
som2 = 0
som3 = 0


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

NB: un fichier exemple serait souhaitable pour garantir les resultats
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
235
Réponses
4
Affichages
177
Réponses
5
Affichages
232
Réponses
10
Affichages
281
Réponses
5
Affichages
182
Retour