Validation d'un TextBox en VBA

H

Hayss

Guest
Bonjour,

Je voudrais savoir comment je fais pour valider dans un textBox (en VBA Excel) si la personne a rentré des lettres et des chiffres au lieu de rentrer dans le TextBox des chiffres seulement.


Merci à tous.
hayss
 
S

SylSyl

Guest
Salut Hayss,

j'ai rien compris a ta question, néanmoins je crois que la methode "IsNumeric" peut t'aider.

Pour savoir si il y a un chiffre dans la textbox:

For i=1 to len(TextBox1.text)
n=mid(TextBox1.text,i ,1) 'parcours un par un les caractères dans la textbox1
if IsNumeric(n) then call msgbox("il y a un nombre") 'teste si c'est un chiffre
next i

Je n'ai pas testé mais ca devrait marcher.
Si tu as besoin de plus d'explication, n'hesites pas.

A++, Sylsyl.
 
G

G'Claire

Guest
Hayss, Sylsyl, le forum

Voici un code que m'avait donné Vérilland, que je remercie :

'=========Message si Nom du TextBox non numérique

If Not IsNumeric( Nom du TextBox) Then
MsgBox "Vous devez rentrer un chiffre ", vbCritical, "ATTENTION !"
Nom du TextBox= ""
Nom du TextBox.SetFocus
Exit Sub
End If

A+, G'Claire
 
H

Hayss

Guest
Salut SylSyl,

Pour que tu comprenne mieux :

Moi j'ai un textBox que je dois faire la validation pour faire un calcul.

Un utilisateur doit rentrer des chiffres SEULEMENT pas autre chose.
Ce que je voudrais savoir : C'est COMMENT que je peux vérifier si l'utilisateur ne rentre pas SEULEMENT des chiffres mais qu'il rentre aussi des lettres, comme par exemple : 14h5m8n.

Merci d'avance
 
S

SylSyl

Guest
Salut Hayss,

il est inutile de poster un 2ème message... (je te conseille amicalement de lire la Charte du Forum)

Dans ce cas la solution de G'Claire est la meilleure.

Dans l'UserForm comprenant la textbox1 tu mets:

Sub TextBox1_Change() 'ou qqchose comme ça

If Not IsNumeric(TextBox1.text) Then 'teste si la reponse est numerique, ici: "si pas numérique alors..."
MsgBox "Vous devez rentrer un chiffre ", vbCritical, "ATTENTION !" '... alors affiche un message d'erreur
textbox.text=left(textbox1.text,len(textbox1)-1) ' et efface le dernier caractere rentré
End If

End Sub

Cette procédure est lancée à chaque fois que la valeur de la textbox1 est modifiée. Si il y a autre chose que des chiffres dans la testbox1 un message d'erreur apparait et la dernière entrée (=le caractere non-numérique) est effacé.
Ainsi la vérification se fait au fur et à mesure que l'utilisateur entre les données.

Tu peux mettre un exemple de saisie à coté de la textox1 pour aider l'utilisateur.

A++, Sylsyl.
 

Jacky67

XLDnaute Barbatruc
Bonjour,

Je voudrais savoir comment je fais pour valider dans un textBox (en VBA Excel) si la personne a rentré des lettres et des chiffres au lieu de rentrer dans le TextBox des chiffres seulement.


Merci à tous.
hayss
Bonjour
Un exemple pour n'autoriser que les chiffres dans un textbox (Ici TextBox1)
VB:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("1234567890" & Application.International(xlDecimalSeparator), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 545
Messages
2 089 474
Membres
104 174
dernier inscrit
Jeanpy NGUVUMALI SAIDI