begin process at 2008 07 09 06:08:19
1 207 200 membres
46 nouveaux aujourd'hui
14 130 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : select case et interval numerique [ Divers / Aide & Documentation ] (gbawar)

select case et interval numerique le 15/11/2006 23:38:27

gbawar
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.

Re : select case et interval numerique le 15/11/2006 23:59:13

mortalino
Membre Club
Réponse acceptée !


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"

Re : select case et interval numerique le 16/11/2006 00:20:30

Gobillot
    Select Case enerelec
       Case Is >= 1 / 99: Calculateur.joule.Text = "J"
       Case Is >= 1 / 99999: Calculateur.joule.Text = "mJ"
       Case Else:
       End Select


Daniel

Re : select case et interval numerique le 16/11/2006 00:35:29

mortalino
Membre Club


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"

Re : select case et interval numerique le 16/11/2006 00:42:53

Gobillot
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

Re : select case et interval numerique le 16/11/2006 00:43:17

mortalino
Membre Club


Mon explication précédante ne tient pas la route^^,
mais en gros, la valeur est soit entre 0 et 1 / 9999, soit entre 1 / 9999 et 1 / 99

Donc ça donnerait plutôt ça :

Select Case enerelec
    Case 0
To(1 / 99999)
        Calculateur.joule.Text = "J"
    Case (1 / 99999) To (1 / 99)           
        Calculateur.joule.Text
 = "mJ"     
        Enerelec
 = Enerelec * 1000
End Select


@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"

Re : select case et interval numerique le 16/11/2006 01:05:42

Gobillot
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

ou dans l'autre:
Select Case enerelec
       Case Is < 0:                'cas 1
       Case Is < 1 / 99999:   'cas 2
       Case Is < 1/99:           'cas 3
       Case Else:                   'cas 4
       End Select


Daniel

Re : select case et interval numerique le 16/11/2006 01:40:53

mortalino
Membre Club


Belle description, avec ça, il ne peut pas se planter dans son explication.

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"

Re : select case et interval numerique le 16/11/2006 19:01:16

gbawar
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

Merci a vous tous cordialement.

Re : select case et interval numerique le 16/11/2006 19:21:29

gbawar
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

ernoce merci@+



Classé sous : case, select, calculateur, enerelec, joule

Participer à cet échange

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS