Certaines chaines de caractères (comme "00100E86" par exemple") sont considérées comme des numériques (càd que le E est considéré comme le symbole Exposant). Or, dans certains cas, il ne faut pas considérer le "E" comme exposant mais bien comme une lettre, et de ce fait, la chaine de caractère n'est plus numérique, mais bien alphanumérique. La fonction retourne True si la chaine est exclusivement composée de chiffres, tous les autres caractères étant exclus (boucle sur les codes ascii 32 à 254).
Source / Exemple :
Function WSIsNumeric(Value As Variant) As Boolean
Dim Compteur As Byte
Select Case IsNumeric(Value)
Case True
WSIsNumeric = True
For Compteur = 32 To 254
Select Case Compteur
Case 48 To 57 '0 à 9
Case Else
Select Case InStr(1, Value, Chr$(Compteur))
Case 0
Case Else
WSIsNumeric = False
Exit Function
End Select
End Select
Next
Case Else
WSIsNumeric = False
Exit Function
End Select
End Function
Conclusion :
La fonction IsNumeric est surtout utilisable dans VBA (Access, Excel...)
6 août 2006 à 22:40
'Vérification du contenu de la zone de texte Utilisateur
If Id_Utilisateur = "" Then
MsgBox " Vous devez saisir un nom d'utilisateur ! ", vbInformation, " Erreur! "
Txt_User.SetFocus
Exit Sub
ElseIf IsNumeric(Id_Utilisateur) = True Then
MsgBox " Le nom de l'utilisateur ne doit comprendre aucun chiffre ! ", vbInformation, " Erreur! "
Txt_User.SetFocus
Exit Sub
Il y a une petit probleme. S'y je met de l'alpha-numérique dans la zone de texte il y a pas de message d'erreur alor que j'en voudrait un.
Svp Quelqu'un pourrait m'aider....
24 nov. 2005 à 21:33
merci a toi
mais perso je vais ajouter a ta fonction juste 2 case pour les codes de + et -
10 avril 2005 à 19:19
10 avril 2005 à 19:17
et plus loint
[ il est certain que cette fonction peut être améliorée/optimisée/modifiée/etc... à vos besoins, mais personnellement, ma fonction répond exactement aux miens]
WSIsNumeric(Value As Variant) As Boolean
Dim Compteur As Byte
WSIsNumeric = False
if IsNumeric(Value) and instr(value,"E")=O and instr(value,"D")=0
WSIsNumeric = True
End IF
end function
Et voila
10 avril 2005 à 14:08
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.