Utilasation de select case sur des intervales normés

Résolu
cs_akzo Messages postés 133 Date d'inscription dimanche 23 juin 2002 Statut Membre Dernière intervention 3 janvier 2015 - 27 juin 2011 à 20:56
 Profil bloqué - 28 juin 2011 à 01:12
Bonsoir a tous,
Lorsque je fonctionne avec de If j'ai pas de souci j'arrive a definir correctement les intervalles.
Par contre j'ai tenté avec select case et je n'y arrive pas.
si j'ai par exemple une valeur de cote de 25 ou 25.6 j'ai comme resultat 0,2 au lieu de 0,25 comment doit t'on faire pour resoudre cela car il prend juste la premiere condition alors que l'ecriture du cote case is >10 <=15 cela ne genere pas d'erreur.


    Dim cote As Double
10  cote = txtCote

20  Select Case cote

        Case Is <= 10
30          resultat = "0,15"

40      Case Is > 10 <= 15
50          resultat = "0,20"

60      Case Is > 15 <= 30
70          resultat = "0,25"

80      Case Is > 30 <= 45
90          resultat = "0,30"

100         Case Is > 45 <= 60
110             resultat = "0,40"

120         Case Is > 60
130             resultat = "Depassement"
140     End Select

Merci par avance pour votre aide
A voir également:

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 220
27 juin 2011 à 22:17
1) je n'y saisis que des valeurs numériques et avec le point comme séparateur décimal
2) j'utilise la fonction Val ===>>
dim toto as double
toto = val(matextbox.text)


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
3
Profil bloqué
28 juin 2011 à 01:12
Salut : inutile de mettre des And
La ligne Case Is <= 15 est forcément > 10 et de même pour les autres
Dim cote As Double, resultat as string
  cote = val(txtCote.text)

  Select Case cote
      Case Is <= 10
          resultat = "0,15"
      Case Is <= 15
          resultat = "0,20"
      Case Is <= 30
          resultat = "0,25"
      Case is <= 45
          resultat = "0,30"
      Case Is <= 60
          resultat = "0,40"
      Case else
          resultat = "Depassement"
     End Select


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 220
27 juin 2011 à 21:20
Bonjour,
Impossible de te répondre sans savoir ce qu'est exactement txtcote !
JU'espère qu'il te s'agit pas de la propriété text ou value d'une textbox nommée txtcote !
Car une textbox contient du string et non du numérique.



____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
cs_akzo Messages postés 133 Date d'inscription dimanche 23 juin 2002 Statut Membre Dernière intervention 3 janvier 2015 3
27 juin 2011 à 21:28
Merci pour cette reponse
textcote contient soit un nombre entier soit un nombre decimal.
je recupere la valeur du textcote qui est un textbox ou je ne saisi que des valeurs numerique entiere ou decimal ou je gere la saisie que je met dans code declarer (dim code as double)

merci j'espere que cela t'aidera d'avantage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_akzo Messages postés 133 Date d'inscription dimanche 23 juin 2002 Statut Membre Dernière intervention 3 janvier 2015 3
27 juin 2011 à 21:42
Rebonjour à tous

Voila maintenant j'ai tenté de cette maniere ci cela à l'air d'etre correct.
Si quelqu'un à quelque chose àproposer j'accepte volontier.

    Dim cote As Double
10  cote = txtCote

20  Select Case cote

        Case Is <= 10
30          resultat = "0,15"

40      Case Is <= 15 And cote > 10
50          resultat = "0,20"

60      Case Is <= 30 And cote > 15
70          resultat = "0,25"

80      Case Is <= 45 And cote > 30
90          resultat = "0,30"

100         Case Is <= 60 And cote > 45
110             resultat = "0,40"

120         Case Is > 60
130             resultat = "Depassement"
140     End Select


salutation
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 220
27 juin 2011 à 21:53
C'est la méthode correcte dès lors que tes bornes sont des doubles.
Je n'aime toutefois toujours pas (mais c'est un autre problème) les mélanges entre strings (textbox) et numériques


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
cs_akzo Messages postés 133 Date d'inscription dimanche 23 juin 2002 Statut Membre Dernière intervention 3 janvier 2015 3
27 juin 2011 à 21:58
Merci ,
comment toi tu gere les saisies des textbox pour les valeurs numeriques
salutation
0
Rejoignez-nous