Salut!!
Je vous explique mon problème :
Je saisis un mot dans une texte box et quand je clique sur le bouton enregistrer sa doit le mettre dans une listbox. Mais avant la mise en listbox il doit verifie le mot qd je clique sur enregistrer et doit interdire les chiffres et tous les caractères autres que "-" et espace.
J'ai pu le faire mais sa ne verifie que le debut du mot pas la fin.
Je voudrais verifier tous le mot si c'est possible je vous donne mon code que j'avais déjà fait.
If TxtSaisie = "" Then
MsgBox "Veuillez saisir un mot SVP", vbOKOnly, "ERREUR"
Else
If Asc(TxtSaisie) < 65 Or Asc(TxtSaisie) > 90 And Asc(TxtSaisie) < 97 Or Asc(TxtSaisie) > 122 And Asc(TxtSaisie) 45 And Asc(TxtSaisie) 32 Then 'Effectue un teste pour empêcher la saisie de caractere
Beep
MsgBox "Caractères saisis non acceptés", vbOKOnly, "ERREUR"
Else
ListMots.AddItem TxtSaisie.Text
End If
End If
La fonction Asc() ne gère qu'un seul caractère;
J'utilise une fonction du genre (ici en VBS mais applicable facilement en VB)
Dim strInput
strInput=InputBox("entrer la chaîne à vérifier")
if GoodString(strInput) then
wscript.echo "Bonne saisie"
else
Wscript.echo "Mauvaise saisie"
end if
Wscript.quit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function GoodString(TheString)
'Renvoie False si la chaine fournie a un caractère qui
'n'est pas dans la constante strGoogCars ou est vide
'sinon, renvoie True
Const strGoodCars=" -ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim iCar '*** N° du caractère de la chaine
GoodString=True '*** la chaine est réputée bonne
For iCar=1 to len(TheString)
if not(InStr(1,strGoodCars,UCase(Mid(TheString,iCar,1))))>0 then
GoodString=False '*** la chaîne contient un mauvais car.
Exit For '*** on sort de la boucle
end if
Next
if len(TheString)=0 then
GoodString=False '*** la chaîne contient un mauvais car.
end if
End Function
Solution plus simple
Dim i, j, a$, c$
'tous les caractères interdits dans a$
a$ = "[mailto:1234567890&|@#'(§^!{})_%´`£,?;.:/ 1234567890&|@#'(§^!{})_%´`£,?;.:/]=+~"
For i = 1 To Len(TextSaisie)If InStr(a$, Mid$(TextSaisie, i, 1)) 0 Then c$ c$ + Mid$(TextSaisie, i, 1)
Next
ListMots.AddItem c$