Programme / fontion
Résolu
ced5757
Messages postés
40
Statut
Membre
-
ced5757 Messages postés 40 Statut Membre -
ced5757 Messages postés 40 Statut Membre -
Bonjour,
J'ai créé la fonction suivante :
Function Ty(x As Double) As Double
If ([$e$16] = 0 And [$e$20] = [$d$9]) Then Ty = [$p$13] - [$d$10] * x
If (0 < [$e$16] < [$e$20] And [$e$20] = [$d$9]) Then
If (0 < x < [$e$16]) Then Ty = (-[$d$10] * x)
ElseIf ([$e$16] < x < [$e$20]) Then Ty = [$d$10] * ([$d$9] - x) - [$p$14]
If ([$e$20] = 0 And 0 < [$e$20] < [$d$9]) Then
If ([$e$16] < [P33] < [$e$20]) Then Ty = -[$d$10] * x + [$p$13]
ElseIf ([$e$20] < x < [$d$9]) Then Ty = [$d$10] * ([$d$9] - x)
If (0 < [$e$16] < [$d$9] And 0 < [$e$20] < [$d$9]) Then
If (0 < x < [$e$16]) Then Ty = -[$d$10] * x
ElseIf ([$e$16] < x < [$e$20]) Then Ty = [$p$13] - [$d$10] * x
ElseIf ([$e$20] < x < [$d$9]) Then Ty = [$d$10] * ([$d$9] - x)
End If
End If
End If
Lorsque je la déplie elle ne fonctionne pas. En effet les résultats obtenus ne sont pas cohérents. je m'explique :
Dans le cas 1 ou e16 = 0 et e20 = d9 j'ai pour le premier ty = 450 car p13=450 et x=0 d10=90 dans le cas où x=0.1 j'ai ty = -9 alors qu'il devrait être égal à 441.
Merci de votre aide
J'ai créé la fonction suivante :
Function Ty(x As Double) As Double
If ([$e$16] = 0 And [$e$20] = [$d$9]) Then Ty = [$p$13] - [$d$10] * x
If (0 < [$e$16] < [$e$20] And [$e$20] = [$d$9]) Then
If (0 < x < [$e$16]) Then Ty = (-[$d$10] * x)
ElseIf ([$e$16] < x < [$e$20]) Then Ty = [$d$10] * ([$d$9] - x) - [$p$14]
If ([$e$20] = 0 And 0 < [$e$20] < [$d$9]) Then
If ([$e$16] < [P33] < [$e$20]) Then Ty = -[$d$10] * x + [$p$13]
ElseIf ([$e$20] < x < [$d$9]) Then Ty = [$d$10] * ([$d$9] - x)
If (0 < [$e$16] < [$d$9] And 0 < [$e$20] < [$d$9]) Then
If (0 < x < [$e$16]) Then Ty = -[$d$10] * x
ElseIf ([$e$16] < x < [$e$20]) Then Ty = [$p$13] - [$d$10] * x
ElseIf ([$e$20] < x < [$d$9]) Then Ty = [$d$10] * ([$d$9] - x)
End If
End If
End If
Lorsque je la déplie elle ne fonctionne pas. En effet les résultats obtenus ne sont pas cohérents. je m'explique :
Dans le cas 1 ou e16 = 0 et e20 = d9 j'ai pour le premier ty = 450 car p13=450 et x=0 d10=90 dans le cas où x=0.1 j'ai ty = -9 alors qu'il devrait être égal à 441.
Merci de votre aide
A voir également:
- Programme / fontion
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
2 réponses
Dans le cas où j'applique la fonction sans la suite elle marche.
Function Ty(x As Double) As Double
If ([$e$16] = 0 And [$e$20] = [$d$9]) Then Ty = [$p$13] - [$d$10] * x
End functions
Function Ty(x As Double) As Double
If ([$e$16] = 0 And [$e$20] = [$d$9]) Then Ty = [$p$13] - [$d$10] * x
End functions
Bonjour,
tu n'as pas le droit d'écrire des trucs comme ça :
0 < [$e$16] < [$e$20]
(enfin si tu as le droit, mais je ne crois pas que ce soit ce que tu veuilles)
Essaie avec :
(0 < [$e$16] and [$e$16]< [$e$20])
même punition pour les autres....
Si tes autres tests sont positifs ton premier calcul est écrasé.
Comme tu es sensé traiter d'autres cas je ne comprend pas que tu n'utilises pas une suite de elseif. Tu seras sûr du passage dans une seule portion.
De plus si tu écris qcq chose derrière un Then, le If se termine sur cette ligne. Pas sûr que tu t'y retrouves bien parmis ce mélange de If sur 1 ligne et de If sur plusieurs lignes.
Ecris-les tous sur plusieurs lignes.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
tu n'as pas le droit d'écrire des trucs comme ça :
0 < [$e$16] < [$e$20]
(enfin si tu as le droit, mais je ne crois pas que ce soit ce que tu veuilles)
Essaie avec :
(0 < [$e$16] and [$e$16]< [$e$20])
même punition pour les autres....
Si tes autres tests sont positifs ton premier calcul est écrasé.
Comme tu es sensé traiter d'autres cas je ne comprend pas que tu n'utilises pas une suite de elseif. Tu seras sûr du passage dans une seule portion.
De plus si tu écris qcq chose derrière un Then, le If se termine sur cette ligne. Pas sûr que tu t'y retrouves bien parmis ce mélange de If sur 1 ligne et de If sur plusieurs lignes.
Ecris-les tous sur plusieurs lignes.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.