thunderpat59199
Messages postés32Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention28 décembre 2007
-
28 mai 2007 à 14:31
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
28 mai 2007 à 15:16
j'ai un problème quand je met 311 j'ai 15.46 au lieu de 15.66
Dim b AsDouble
Dim coef AsDouble
Dim g AsDouble
Dim X AsDouble
Dim z AsDouble'variable pour essai
z = valaffiche
If74 > z Then
b = (0.072329 * z)
ElseIf73 > z < 155Then
g = 5.28
coef = 0.06321
X = z - 73
b = g + (coef * X)
ElseIf154 > z < 235Then
g = 10.46
coef = 0.06475
X = z - 154
b = g + (coef * X)
ElseIf234 > z < 312Then
g = 15.64
coef = 0.066494
X = z - 234
b = g + (coef * X)
ElseIf311 > z < 396Then
g = 20.78
coef = 0.062024
X = z - 311
b = g + (coef * X)
ElseIf395 > z < 472Then
g = 25.99
coef = 0.067273
X = z - 395
b = g + (coef * X)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 28 mai 2007 à 14:40
hé, hé, les doubles tests, ça ne marche pas comme ça. C'est plutot .... ElseIf z >154 And z<235 then ....
Mais dans ton cas il serait plus judicieux d'utiliser un select case
Dim b As Double
Dim coef As Double
Dim g As Double
Dim X As Double
Dim z As Double 'variable pour essai
z = valaffiche
Select Case z
Case Is < 74
b = (0.072329 * z)
Case 74 To 154
g = 5.28
coef = 0.06321
X = z - 73
b = g + (coef * X)
Case 155 To 234
g = 10.46
coef = 0.06475
X = z - 154
b = g + (coef * X)
Case 235 To 311
g = 15.64
coef = 0.066494
X = z - 234
b = g + (coef * X)
Case 312 To 395
g = 20.78
coef = 0.062024
X = z - 311
b = g + (coef * X)
Case 396 To 471
g = 25.99
coef = 0.067273
X = z - 395
b = g + (coef * X)
End Select
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 mai 2007 à 14:36
ce genre d'expression ne sera pas compris comme tu le penses par VB !
ElseIf 73 > z < 155 Then
je pense que tu veux dire :
ElseIf z >73 and z < 155
mais n'en suis par certain ! Que veux-tu dinc dire (précise en français) ?
Il en va de même pour toutes tes autres expressions de ce genre ...
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 28 mai 2007 à 14:44
Salut il faudrai à un moment mettre des inférieurs ou égales
Exemple: Si je prends 311.5 c'est < 312 mais aussi supérieur à 311, mais bon comme il testera d'abord ça ElseIf234 > z < 312Then, mais ce serai plus propre comme méthode, mais cela reste que mon avis
ElseIf
234 > z < 312Then
ElseIf311 > z < 396Then
Sinon effectivement, comme l'a précisé jmfmarques c'est ElseIf 234 > z And z < 312 Then
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 mai 2007 à 14:45
Pour être plus clair :
z < 155 = true si z est plus petit que 155
et donc :
ElseI f 73 > z < 155 Then
équivaut à
ElseIf 73 > true Then
ce qui sera toujours vrai puisque la valeur de True est -1 !!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 mai 2007 à 15:04
Ouais...
allez donc savoir pourquoi je l'aurais écrite ainsi :
If z < 74 Then
b = (0.072329 * z)
Else
z1 = z \ 154
Select Case z1
Case 0
g = 5.28
coef = 0.06321
X = z - 73
Case 1
g = 10.46
coef = 0.06475
X = z - 154
Case 2
g = 15.64
coef = 0.066494
X = z - 234
Case 3
g = 20.78
coef = 0.062024
X = z - 311
Case 4
g = 25.99
coef = 0.067273
X = z - 395
End Select
b = g + (coef * X)
End If
End Sub
et encore... je n'ai pas tout analysé !... je suis sur qu'il y a mieux à faire en "grattant" un peu...