Protection contre les negatifs

RadioNails - 7 sept. 2001 à 15:13
Icar02 Messages postés 1 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 26 juillet 2004 - 26 juil. 2004 à 14:19
Bonjour, j'ai un problème, je débute dans VB, mais j'en connais asser pour ne pas voir quel est le problème de ce script, pouvez vous m'aide..?
Mise en situation:
Je dois entrer le nombre de Calendrier à commender dans le textBox txtCalendrier.text et ensuite faire des calculs avec cette valeur. Mais je ne veux pas de nombres negatifs dans ce textbox, voici le code que j'ai fait pour en être sur:

If CCur(txtCalendrier.Text) < 0 Then
txtCalendrier.Text = ""
End If

Il me renvoie une erreur "Type incompatible" (Type Mismatch)
sur la 1er ligne de ce code... SVP Aidez moi :-)

RadioNails

5 réponses

chez moi ca marche bien ...
evidemment, si text1 n'est pas numérique ... erf, ca génère cette erreur
ce qui est normal puisque CCur attend une valeur numérique
bref, je vois pas ton probleme ..
0
Essaye CLng...
0
tu mélanges des variables de types différents, débarrasse toi de Ccur pour ne laisser que :

If txtCalendrier.value < 0 Then
txtCalendrier.value = 0
End If

ou alors tu multiplies par -1 (txtCalendrier.value = txtCalendrier.value * -1), comme ça si l utilisateur entre -5, c est converti en 5.

entre nous, je pense aussi qu il faudrait aussi prévoir le cas où l utilisateur rentre de l alphabetique ou alphanumerique...
A toi de jouer.
0
Salut

Essai le code suivant :
Private Sub txtCalendrier_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then KeyAscii = 0
End Sub
En faite, on interdit les caracter autres que numerique.

Retourn un valeur toujours positive : ABS
exemple :
abs(5) = 5
abs(-6) = 6

Valeur numerique d'un string : VAL
val("Bonjour") = 0
val("123") = 123

Exemple plus complet :
txtCalendrier.Text = abs(Val(txtCalendrier.Text))

Mais y'a d'autre probleme avec cette fonction...

a+

int19h
0

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

Posez votre question
Icar02 Messages postés 1 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 26 juillet 2004
26 juil. 2004 à 14:19
If CCur(txtCalendrier.Text) < 0 Then
txtCalendrier.Text = ""
End If

ton txtCalendrier renvoie une valeur texte et tu demande unez comparaison avec une valeur numerique (<0)
Tu dois convertir en numeric ton text :
If CDbl(CCur(txtCalendrier.Text)) < 0 Then
essaie ça, je pense que ca devrai passer !
:-)

Icar02
0
Rejoignez-nous