Erreur valeur absolue
Will_04
Messages postés
5
Statut
Membre
-
jordane45 Messages postés 40053 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40053 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un problème avec un code. Je désire faire une écart-type, mais j'ai un problème. À la portion (u - y), il arrive que le y soit plus grand que le u. Donc, ce que je veux faire, c'est que le (u - y) devienne un (y - u), car je ne veux pas de chiffre négatif...
J'ai un problème avec un code. Je désire faire une écart-type, mais j'ai un problème. À la portion (u - y), il arrive que le y soit plus grand que le u. Donc, ce que je veux faire, c'est que le (u - y) devienne un (y - u), car je ne veux pas de chiffre négatif...
Sub Écart()
Sheets("Données").Select
y = 138.47 'la moyenne
x = 0
u = Cells(i, 2)
For i = 1 To 60
x = Sqr((x + (u - y) ^ 2) / 60)
If u - y < 0 Then Replace u - y = y - u ' ici mon problème..... Ça me dit que j'ai un argument non facultatif
Next i
Sheets("Statistiques").Select
Cells(15, 2) = x
End Sub
4 réponses
Bonjour,
If u - y < 0 Then Replace u - y = y - u Sur que ca ne marche pas!!!!!!!!!!!!!!!!!!!!
Expliquez un peu plus ce que vous voulez faire avec ceci:que le (u - y) devienne un (y - u) et surtout a quel endroit
A+
If u - y < 0 Then Replace u - y = y - u Sur que ca ne marche pas!!!!!!!!!!!!!!!!!!!!
Expliquez un peu plus ce que vous voulez faire avec ceci:que le (u - y) devienne un (y - u) et surtout a quel endroit
A+
Will_04
Messages postés
5
Statut
Membre
Le u est dans le fond un résultat X et le y est la moyenne. Il arrive des fois que le u est plus gros que le y. Ce que je veux, c'est qu'au lieu que ça devienne une soustraction, j'aimerais que le résultat s'additionne. Je ne veux pas de donnée négative dans mon calcul...
Bonjour,
Il suffit d'utiliser la fonction ABS ( valeur Absolue..)
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Il suffit d'utiliser la fonction ABS ( valeur Absolue..)
Sub Écart()
Sheets("Données").Select
y = 138.47 'la moyenne
x = 0
u = Cells(i, 2)
For i = 1 To 60
x = Sqr((x + Abs(u - y)) ^ 2) / 60)
Next i
Sheets("Statistiques").Cells(15, 2) = x
End Sub
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Bonjour,
Ca fonctionne très bien...
Sauf.. que tu as Mis la récupération de ton U .. en dehors de ta boucle... et donc.. ton I ne s'incrémente jamais..
Tu aurais lancé ta macro en mode pas à pas.. tu l'aurais vu..
Voici le code corrigé
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Ca fonctionne très bien...
Sauf.. que tu as Mis la récupération de ton U .. en dehors de ta boucle... et donc.. ton I ne s'incrémente jamais..
Tu aurais lancé ta macro en mode pas à pas.. tu l'aurais vu..
Voici le code corrigé
Sub Écart()
Dim Fsource As Worksheet
Dim FResultat As Worksheet
Dim Y As Double
Dim X As Double
Dim U As Double
Set Fsource = Worksheets("Données")
Set FResultat = Worksheets("Statistiques")
Y = 138.47 'la moyenne
X = 0
For i = 1 To 60
U = Fsource.Cells(i, 2)
X = Sqr((X + (U - Y) ^ 2) / 60)
'Copie du resultat
FResultat.Cells(15, 2) = X
Next i
End Sub
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane