Erreur valeur absolue
Will_04
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 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+ -
D'une manière générale x² que x soit positif ou négatif, le résultat est toujours positif.
-
Bonjour,
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é
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