JR a écrit:
Le plus simple est toujours d'empêcher directement les caractères indésirables.
Au pire tu split ta string et du boucle dans le array et tu fais un isnumeric sur chaque mais c'est pas très clean.
C'est pas si pas clean que ça, mais vérifier pour la validité des caracère sur l'événement change du textbox serait un plus. Si la personne entre 1;2;3 ça ne marchera pas. En regardant ce que la personne écrit, tu fait un if.
Dans le code suivant "object_KeyPress" le object va être le nom de ton textbox (txtDonnees_KeyPress).
Code :
const CARACTERES_VALIDES as string = "1234567890,"
Private Sub object_KeyPress(keyascii As Integer)
if instr(chr(valeur_entree), CARACTERES_VALIDES) = 0 then
' Enlever le dernier caractère entré
keyascii= 0
' Afficher un message box indiquant la faute
msgbox ...
end if
endif
private sub validerChamp(byval str_Valeur as string) as boolean
dim astrDonnees() as String
dim lngI as long
dim blnValide as boolean
astrDonnees = split(str_Valeur,",")
blnValide = true
for lngI=lbound(astrdonnees) to ubound(astrDonnees)
if not isnumeric(astrdonnees(lngI) then
blnvalide=false
exit for
end if
next
validerChamp = blnValide
end function