cs_MissJo
Messages postés43Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention10 janvier 2005
-
22 mars 2004 à 21:03
cs_MissJo
Messages postés43Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention10 janvier 2005
-
24 mars 2004 à 22:18
Salut!!
J'ai un petit soucis: j'ai trois zone de texte:
-objectif
-mini
-maxi
je teste la saisie pour pouvoir enregistrer ces données, l'objectif doit etre compris entre mini et maxi, cela fonctionne trés bien avec des nombres positif mais non avec des nombres négatif, existe t'il une formule indiquant qu'il s'agit d'un nombre négatif. mon code de test est le suivant:
Public Function teste_saisie_choix_type() As Integer
'========================================
' Vérifie les champs saisis
' retourne -1 si OK, numero du champ sinon
'========================================
Dim i As Integer
Dim result As Boolean
Dim result2 As Boolean
If Not IsNumeric(frm_choix.txt_objectif_type_ana) Then
MsgBox ("Vérifiez l'objectif ! " & "Le format valide est :" & Format("##,##")), vbExclamation, frm_choix.Caption
frm_choix.txt_objectif_type_ana.BackColor = &H8080FF
teste_saisie_choix_type = 0
frm_choix.txt_objectif_type_ana.SetFocus
End If
If Not IsNumeric(frm_choix.txt_mini_type_ana) And (teste_saisie_choix_type < 0) Then
MsgBox ("Vérifiez la tolérance minimum ! " & "Le format valide est :" & Format("##,##")), vbExclamation, frm_choix.Caption
frm_choix.txt_mini_type_ana.BackColor = &H8080FF
teste_saisie_choix_type = 1
frm_choix.txt_mini_type_ana.SetFocus
End If
result = frm_choix.txt_mini_type_ana < frm_choix.txt_objectif_type_ana
If (result = False) And (teste_saisie_choix_type < 0) Then
MsgBox ("L'objectif doit être compris entre la tolérance minimum et maximum!"), vbExclamation, frm_choix.Caption
frm_choix.txt_mini_type_ana.BackColor = &H8080FF
teste_saisie_choix_type = 2
frm_choix.txt_mini_type_ana.SetFocus
End If
If Not IsNumeric(frm_choix.txt_maxi_type_ana) And (teste_saisie_choix_type < 0) Then
MsgBox ("Vérifiez la tolérance maximum !" & "Le format valide est :" & Format("##,##")), vbExclamation, frm_choix.Caption
frm_choix.txt_maxi_type_ana.BackColor = &H8080FF
teste_saisie_choix_type = 4
frm_choix.txt_maxi_type_ana.SetFocus
End If
If result2 = False And (teste_saisie_choix_type < 0) Then
MsgBox ("L'objectif doit être compris entre la tolérance minimum et maximum!"), vbExclamation, frm_choix.Caption
frm_choix.txt_maxi_type_ana.BackColor = &H8080FF
teste_saisie_choix_type = 3
frm_choix.txt_maxi_type_ana.SetFocus
End If
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 mars 2004 à 23:50
Salut MissJo
Je n'ai pas trop détaillé ton code, mais voilà :
- Pour tester si un chiffre est négatif, il suffit de le comparer à zéro : Est négatif si MaValeur < 0
D'autre part, tu n'oublies bein sur pas que, lorsque tu utilises des chiffres négatifs comme bornes mini et maxi, le mini est plus grand en valeur absolue que le maxi :
Si tu veux tester un chiffre compris entre -30 et -2, il va de soi que -30 est ton mini, et -2 ton maxi.
cs_MissJo
Messages postés43Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention10 janvier 2005 24 mars 2004 à 22:18
Je pense que le probleme n'était pas la et biensur je sais que -30 est plus petit que -2, je suis pas née de la derniere pluie quand meme!!
En fait, j'ai trouvé, c'est que je teste des chaine de caractere et non des nombres, donc je compare des sommes de codes ascii car je n'ai pas fait de conversion..
j'ai changé la plupart de mon code et j'ai utilisé la fonction Ccur(...) pour convertir et ca marche maintenant...