Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tester si le chiffre est un entier

7 réponses
Avatar
Jingle
Bonjour,

Mon utilisateur doit entrer une valeur en l'occurence un=20
entier, mais il peu en effet saisir tout et n'importe=20
quoi, c'est pour cela que dans ce cas la je veux lui=20
afficher un message d'erreur.

Dim As Integer

test =3D int(Text1.text)
Dans ce cas, si l'utilisateur saisit autre chose qu'un=20
entier j'aurai une erreur, mais je ne sais pas quelle=20
instruction utiliser pour afficher mon message a la place=20
de celui de vb "erreur 13 type incompatible"

j'ai essaye avec un if Err <>0 then .... mais marche pas

enfin voila si vous pouvez m'aider je vous en remercie=20
d'avance.

P.S.: es-ce une nouveaut=E9 de vb6 l'instruction strtoint ne=20
marche plus??

7 réponses

Avatar
bossun
if isint(text1.text) then
...
end if






"Jingle" a écrit dans le message de news:
1bfb01c372e9$2c5f37d0$
Bonjour,

Mon utilisateur doit entrer une valeur en l'occurence un
entier, mais il peu en effet saisir tout et n'importe
quoi, c'est pour cela que dans ce cas la je veux lui
afficher un message d'erreur.

Dim As Integer

test = int(Text1.text)
Dans ce cas, si l'utilisateur saisit autre chose qu'un
entier j'aurai une erreur, mais je ne sais pas quelle
instruction utiliser pour afficher mon message a la place
de celui de vb "erreur 13 type incompatible"

j'ai essaye avec un if Err <>0 then .... mais marche pas

enfin voila si vous pouvez m'aider je vous en remercie
d'avance.

P.S.: es-ce une nouveauté de vb6 l'instruction strtoint ne
marche plus??
Avatar
François Picalausa
Bonjour/soir,

Jette un oeil à la faq:
http://faq.vb.free.fr/index.php?question€

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Jingle" a écrit dans le message de
news:1bfb01c372e9$2c5f37d0$
Bonjour,

Mon utilisateur doit entrer une valeur en l'occurence un
entier, mais il peu en effet saisir tout et n'importe
quoi, c'est pour cela que dans ce cas la je veux lui
afficher un message d'erreur.

Dim As Integer

test = int(Text1.text)
Dans ce cas, si l'utilisateur saisit autre chose qu'un
entier j'aurai une erreur, mais je ne sais pas quelle
instruction utiliser pour afficher mon message a la place
de celui de vb "erreur 13 type incompatible"

j'ai essaye avec un if Err <>0 then .... mais marche pas

enfin voila si vous pouvez m'aider je vous en remercie
d'avance.

P.S.: es-ce une nouveauté de vb6 l'instruction strtoint ne
marche plus??
Avatar
Denis
Bonjour Jingle,

Pour vérifier si ce qui a été saisie est un entier voici une procédure toute
simple qui pourra sûrement t'aider.

Tu pourras la tester en créant une form avec 2 TextBox et 1 bouton de
commande et inscrire ce bout de code

Private Sub Command1_Click()
If IsNumeric(Text1.Text) Then
If CLng(Text1.Text) = Val(Text1.Text) Then
Text2.Text = " Entier"
Else
Text2.Text = " pas un entier"
End If
Else
Text2.Text = "pas un nombre"
End If

End Sub

Donc tu vérifies d'abord si le contenu de Text1 est numeric, ensuite tu
convertis le contenu en Long (ce qui est un entier) et tu le compares à la
Valeur de Text1. Tu sauras forcément si le contenu de Text1 est un entier
ou non. Donc pour afficher des messages d'avertissement, tu auras
simplement a coder des MsgBox au lieu des Text2 et le tour sera joué.

Autre moyen plus drastique, tu peux toujours empêcher la saisie de caractère
autre que des chiffres en contrôlant l'évènement Keypress de ta zone de
texte. Ainsi, l'utilisateur ne peut entrer autre chose que des chiffres. Tu
dois tout de même faire la vérification pour t'assurer que c'est un entier à
moins d'exclure le copier coller sur ta zone de texte, ce qui plus compliqué
un peu que de simplement faire une vérification banale.

Espérant avoir pu t'aider un peu

@ +

Denis P

"Jingle" a écrit dans le message de
news:1bfb01c372e9$2c5f37d0$
Bonjour,

Mon utilisateur doit entrer une valeur en l'occurence un
entier, mais il peu en effet saisir tout et n'importe
quoi, c'est pour cela que dans ce cas la je veux lui
afficher un message d'erreur.

Dim As Integer

test = int(Text1.text)
Dans ce cas, si l'utilisateur saisit autre chose qu'un
entier j'aurai une erreur, mais je ne sais pas quelle
instruction utiliser pour afficher mon message a la place
de celui de vb "erreur 13 type incompatible"

j'ai essaye avec un if Err <>0 then .... mais marche pas

enfin voila si vous pouvez m'aider je vous en remercie
d'avance.

P.S.: es-ce une nouveauté de vb6 l'instruction strtoint ne
marche plus??
Avatar
Zoury
IsInt() ?

:O)

Quel version as-tu?

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"bossun" wrote in message
news:
if isint(text1.text) then
...
end if






"Jingle" a écrit dans le message de news:
1bfb01c372e9$2c5f37d0$
Bonjour,

Mon utilisateur doit entrer une valeur en l'occurence un
entier, mais il peu en effet saisir tout et n'importe
quoi, c'est pour cela que dans ce cas la je veux lui
afficher un message d'erreur.

Dim As Integer

test = int(Text1.text)
Dans ce cas, si l'utilisateur saisit autre chose qu'un
entier j'aurai une erreur, mais je ne sais pas quelle
instruction utiliser pour afficher mon message a la place
de celui de vb "erreur 13 type incompatible"

j'ai essaye avec un if Err <>0 then .... mais marche pas

enfin voila si vous pouvez m'aider je vous en remercie
d'avance.

P.S.: es-ce une nouveauté de vb6 l'instruction strtoint ne
marche plus??




Avatar
Zoury
Salut Jingle et à tous les autres!

IsNumeric n'est pas vraiment fiable... Il peut accepter des valeurs plus
qu'étrange selon les configurations systèmes. Tu peux utiliser la fonction
IsDigitsOnly() (posté par Rick Rothstein) qui ne ment jamais. ;O)

Supposons le code suivant sur un système ayant la virgule comme sépérateur
décimal et l'espace comme séparateur de milliers.
'***
' Module1
Option Explicit

Private Sub Main()

Debug.Print "123", , IsDigitsOnly("123"), IsNumeric("123")
Debug.Print "12,3", , IsDigitsOnly("12,3"), IsNumeric("12,3")
Debug.Print "123A", , IsDigitsOnly("123A"), IsNumeric("123A")
Debug.Print "aaa", , IsDigitsOnly("aaa"), IsNumeric("aaa")
Debug.Print "", , IsDigitsOnly(""), IsNumeric("")
Debug.Print "-123", , IsDigitsOnly("-123"), IsNumeric("-123")
Debug.Print "1,28E+11", , IsDigitsOnly("1,28E+11"),
IsNumeric("1,28E+11")
Debug.Print "$(123 5,4 67E9)$", IsDigitsOnly("$(123 5,4 67E9)$"),
IsNumeric("$(123 5,4 67E9)$")

End Sub

Private Function IsDigitsOnly(ByRef s As String) As Boolean
IsDigitsOnly = Not s Like "*[!0-9]*" And LenB(s) > 0
End Function
'***

Vous voyez que IsNumeric renvoyé vrai sur des valeurs qui ont une
signification numérique, mais c'est dernière ne peuvent être considéré comme
étant des nombres... elle ne font que représenté des nombres.. vous me
suivez?

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Jingle" wrote in message
news:1bfb01c372e9$2c5f37d0$
Bonjour,

Mon utilisateur doit entrer une valeur en l'occurence un
entier, mais il peu en effet saisir tout et n'importe
quoi, c'est pour cela que dans ce cas la je veux lui
afficher un message d'erreur.

Dim As Integer

test = int(Text1.text)
Dans ce cas, si l'utilisateur saisit autre chose qu'un
entier j'aurai une erreur, mais je ne sais pas quelle
instruction utiliser pour afficher mon message a la place
de celui de vb "erreur 13 type incompatible"

j'ai essaye avec un if Err <>0 then .... mais marche pas

enfin voila si vous pouvez m'aider je vous en remercie
d'avance.

P.S.: es-ce une nouveauté de vb6 l'instruction strtoint ne
marche plus??
Avatar
h.canevet
A propos, si la longueur maximale du champ est connue, le plus simple
est encore largement d'utiliser le masque de saisie.

Si on y met "0000", l'utilisateur pourra entrer quatre chiffres, et
rien d'autre. Il peut utiliser les fonctionnalités d'édition pour
corriger une erreur, mais pas entrer de lettres ni de signe de
ponctuation.

"9999" permettrait aussi d'entrer des espaces.

Il s'agit de la propriété InputMask (le masque de saisie est dans le
volet Données des propriétés d'une zone de texte).
____________________________________________________
"Jingle" <toupy wrote in message
news:<1bfb01c372e9$2c5f37d0$...
Bonjour,

Mon utilisateur doit entrer une valeur en l'occurence un
entier, mais il peu en effet saisir tout et n'importe
quoi, c'est pour cela que dans ce cas la je veux lui
afficher un message d'erreur.

Dim As Integer

test = int(Text1.text)
Dans ce cas, si l'utilisateur saisit autre chose qu'un
entier j'aurai une erreur, mais je ne sais pas quelle
instruction utiliser pour afficher mon message a la place
de celui de vb "erreur 13 type incompatible"

j'ai essaye avec un if Err <>0 then .... mais marche pas

enfin voila si vous pouvez m'aider je vous en remercie
d'avance.

P.S.: es-ce une nouveaut de vb6 l'instruction strtoint ne
marche plus??


Avatar
Driss HANIB
Salut Zoury

tu as raison et je viens de regarder la FAQ dont tu m'a parlée celle de
François .
Je vais étduier et utiliser le sous classemeent pour prévenir le copier
coller.
Pour les points autres je "gère" l'accès aux autres toiuches et notamment la
virgule (ou le pint transformé en virgule), je gère le nombre de chiffres
après cette virgule etc.
la faille du copier / coller existait encore.

merci d'avoir insisté

et merci pour tous vos conseils précieux

amicalement

Driss
un autodidacte du VB

"Zoury" a écrit dans le message de
news:%
Salut Driss! :O)

Cette méthode ne prévient toutefois pas l'utilisateur de copier/coller du
texte non valide dans le contrôle et t'empêche d'utiliser *toutes* les
autres touches mit à part le Backspace ce qui n'est pas très pratique...

lit l'article de la FAQ pour plus de détails.. (voir le message de


Môssieur
François "VB Master" Picalausa pour l'adresse exacte)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous