gbawar
Messages postés29Date d'inscriptiondimanche 15 août 2004StatutMembreDernière intervention15 mars 2007
-
15 nov. 2006 à 23:38
gbawar
Messages postés29Date d'inscriptiondimanche 15 août 2004StatutMembreDernière intervention15 mars 2007
-
16 nov. 2006 à 19:21
Bonjour,
J'ai un ensemble de code que je voudrais simplifier en passant par un select case mais y un petit probléme qui se pose a moi.
Voici une parti de code:
If (Val(Enerelec) < 0) And (Val(Enerelec) > 1 / 99) Then
Calculateur.joule.Text = "J"
End If
If (Val(Enerelec) < (1 / 99)) And (Val(Enerelec) > (1 / 99999)) Then
Calculateur.joule.Text = "mJ"
Enerelec = Enerelec * 1000
End If
Mon PB ce que je dois avoir un interval de valeur numerique a chaque fois, j'ai essayer ce code:
select case enerelec
case (Val(Enerelec) < 0) And (Val(Enerelec) > 1 / 99)
Calculateur.joule.Text = "J"
case (Val(Enerelec) < (1 / 99)) And (Val(Enerelec) > (1 / 99999))
Calculateur.joule.Text = "mJ"
Enerelec = Enerelec * 1000
end select.
Mais le resultat est incorrect.
j'ai essayé:
select case enerelec
case is < 0 And > 1 / 99
Calculateur.joule.Text = "J"
case is < (1 / 99) And > (1 / 99999)
Calculateur.joule.Text = "mJ"
Enerelec = Enerelec * 1000
end select.
et aussi
select case enerelec
case is < 0 > 1 / 99
Calculateur.joule.Text = "J"
case is < (1 / 99) > (1 / 99999)
Calculateur.joule.Text = "mJ"
Enerelec = Enerelec * 1000
end select.
Mais idem.
Donc j'aimerais savoir comment je peux réaliser cette fonction qui est présent 9 fois pour 9 variable différentes et qui contient 11 IF end IF pour réalisé la fonction demandé et qui fonction.
L'objectif et de gagner un peux de place et que le programme soit moin lourd.
Merci.
Cordialement.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 15 nov. 2006 à 23:59
Salut,
essaie comme ceci :
Select Case enerelec
Case (1 / 99) To 0
Calculateur.joule.Text = "J"
Case (1 / 99999) To (1 / 99)
Calculateur.joule.Text = "mJ"
Enerelec = Enerelec * 1000
End Select
--Mortalino--
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 16 nov. 2006 à 00:35
Salut,
Gobillot, je suis désolé (à tord, peut-être) mais je ne suis pas d'accord, si enerelec possède une valeur de 3, le 1er Case s'exécutera, alors que gbawar ne veut pas que la valeur soit supérieure à 0.
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 16 nov. 2006 à 00:42
Salut,
on sait pas trop ce qu'il veux parce qu'il a mis ses test inversés
case is < 0 And > 1 / 99 est impossible
j'ai donc fait une supposition:
de toutes façons il vaut mieux tester tous les cas pour ne pas avoir de surprise:
Select Case enerelec
Case Is >= 0: ???
Case Is >= 1 / 99:
Calculateur.joule.Text = "J"
Case Is >= 1 / 99999:
Calculateur.joule.Text = "mJ"
Enerelec = Enerelec * 1000
Case Else: ???
End Select
Daniel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 16 nov. 2006 à 01:05
re,
le zéro est mal placé, mais j'ai pas encore compris ses intervals
il y a 3 points donc 4 intervals:
- 1 < 0
- 2 0 à 1/99999
- 3 1/99999 à 1/99
- 4 > 1/99
0 1/99999 1/99
--------------------|-----------------------|-------------------|----------------------
dans un sens:
Select Case enerelec
Case Is >= 1/99: 'cas 4
Case Is >= 1 / 99999: 'cas 3
Case Is >= 0: 'cas 2
Case Else: 'cas 1
End Select
gbawar
Messages postés29Date d'inscriptiondimanche 15 août 2004StatutMembreDernière intervention15 mars 2007 16 nov. 2006 à 19:01
Voici le code que j'ai mis et qui fonctionne:
Select Case Enerelec
Case (1 / 100) To 0
Calculateur.joule.Text = "J"
Case (1 / (99999 + 1)) To (1 / 101)
Calculateur.joule.Text = "mJ"
Enerelec = Enerelec * 1000
Case (1 / (999999999 + 1)) To (1 / 100001)
Calculateur.joule.Text = "µJ"
Enerelec = Enerelec * 1000000
End Select
gbawar
Messages postés29Date d'inscriptiondimanche 15 août 2004StatutMembreDernière intervention15 mars 2007 16 nov. 2006 à 19:21
Aprés verification de ma par ce code et le bon : (Code de Mortalino)
Select Case enerelec
Case (1 / 99) To 0
Calculateur.joule.Text = "J"
Case (1 / 99999) To (1 / 99)
Calculateur.joule.Text = "mJ"
Enerelec = Enerelec * 1000
End Select