Controler si une chaine est bien un entier ou un chiffre à virgule [Résolu]

Signaler
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
-
Bonjour,

Désolé de poser cette question de débutant. J'aurais pensé trouver la réponse sur le site mais je n'ai rien trouvé.
Je voudrais simplement tester si une chaînede caractères contient bien un entier ou un décimal. La chaine correspond à un prix, 5 serait valide, 5,5 également, 5,5,6 ne le serait pas...
Je pensais qu'il existait une fonction de type isdate() pour les valeurs numériques mais je ne trouve pas. J'avais dans l'idée de vérifier si le contenu correspondait bien a des chiffres et si il n'y avait pas 2 fois une virgule dans la chaine mais je me dis qu'il doit y avoir plus simple, non??

merci d'avance

3 réponses

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Il y a déjà eu des sujets idem dans le forum. Ca m'étonne que tu n'aies pas trouvé.
Les solutions sont diverses et variées, perso, en général, j'utilise la simple fonction :

If IsNumeric(TaChaine) then
'c'est du numérique
else
'c'en est pas
end if

A condition qu'il n'y ait pas de séparateur de milliers dans TaChaine.

Cordialement, CanisLupus
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Merci

C'est exactement ce que je cherchais. En plus, je l'avais déjà utilisé mais je n'arrivais pas à me souvenir du nom. J'ai cherché avec entier, numérique et controle chaine, j'aurais du effectuer une recherche plus large...

Merci encore
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
27
marche dans tous les cas:

Private Function IsNum(s As String) As Boolean
Dim x As Single
On Error Resume Next
x = s If Err 0 Then IsNum True
End Function

pour l'utiliser:
If IsNum(Text1.Text) Then MsgBox "OUI c'est numérique" Else MsgBox "NON c'est pas"

Daniel