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
71
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
71
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