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.
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"
<!--
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"
<!--
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
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
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
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