If ... then

Résolu
impredaj Messages postés 12 Date d'inscription dimanche 26 mars 2006 Statut Membre Dernière intervention 28 avril 2006 - 28 avril 2006 à 01:15
impredaj Messages postés 12 Date d'inscription dimanche 26 mars 2006 Statut Membre Dernière intervention 28 avril 2006 - 28 avril 2006 à 15:27
Bonjour à tous,
dans une zone de texte, j'ai inseré le code suivant pour que le textBox affiche la bonne réponse selon les quatres possibilités :

Private Sub P_U__Tirage_GotFocus()
Dim Possibilite1 As Integer, Possibilite2 As Integer, Possibilite3 As Integer, Possibilite4 As Integer
If IsNull(Nbre_Tirage) = True Then
Exit Sub
End If
Possibilite1 = Nbre_Tirage < 5001
Possibilite2 = 5001 < Nbre_Tirage < 20001
Possibilite3 = 20001 < Nbre_Tirage < 50001
Possibilite4 = Nbre_Tirage > 50001
If Possibilite1 Then
P_U__Tirage = 0.02
ElseIf Possibilite2 Then
P_U__Tirage = 0.015
ElseIf Possibilite3 Then
P_U__Tirage = 0.012
Else
P_U__Tirage = 0.012
End If
End Sub

mais en fin de compte, le textBox n'affiche que (0.02 si Nbre_Tirage < 5001) sinon il affiche (0.015).

Merci.

5 réponses

cs_Talere Messages postés 102 Date d'inscription vendredi 29 mars 2002 Statut Membre Dernière intervention 14 février 2013
28 avril 2006 à 09:03
j'aurais plutot ecrit le code suivant :

Private Sub P_U__Tirage_GotFocus()
If IsNull(Nbre_Tirage)Then exit sub

Select case Nbre_Tirage
Case 0 to 5000
   P_U__Tirage = 0.02
Case 5001 to 20000
   P_U__Tirage = 0.015
Case 20001 to 50001
   P_U__Tirage = 0.012
Case Else
   P_U__Tirage = 0.012
End Select
end sub
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2006 à 02:33
ce genre de test  :


5001 < Nbre_Tirage < 20001


ne veux rien dire....


fais simplement :


If Not IsNull(Nbre_Tirage)Then

  If Nbre_Tirage < 5001

     P_U__Tirage = 0.02

  ElseIf 5001 <= Nbre_Tirage And Nbre_Tirage < 20001 Then

     P_U__Tirage = 0.015

  ElseIf 20001 <= Nbre_Tirage Then

     P_U__Tirage = 0.012

  End If

End If

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
malhivertman1 Messages postés 489 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 22 novembre 2007 1
28 avril 2006 à 10:08
De même, j'opterai pour le select case
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2006 à 11:08
exact,  j'avais lu 'VBS' ^^ (au lieu de VBA)
ne sachant pas si le vbs accepte les Select Case.... j'ai codé ça en If ^^

Case 20001 to 50001
   P_U__Tirage = 0.012
Case Else
   P_U__Tirage = 0.012

deux cas traité ici, le même résultat....
Case Else
   P_U__Tirage = 0.012

suffirait donc....

d'après son nom (Nbre_Tirage), c'est un nombre positif, mais rien n'est moins sur....

si ca n'était pas le cas, on pourrais faire :

Case Is < 5000
   P_U__Tirage = 0.02

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0

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

Posez votre question
impredaj Messages postés 12 Date d'inscription dimanche 26 mars 2006 Statut Membre Dernière intervention 28 avril 2006
28 avril 2006 à 15:27
merci pour l'aide
sauf que pour :

Case Else
   P_U__Tirage = 0.012

j'ai commis une faute de frappe
en fait,
Case Else
   P_U__Tirage = 0.01

et ça marche tres bien

MERCIIIIIIIIIII
0
Rejoignez-nous