Validation d'un TextBox en VBA

  • Initiateur de la discussion Initiateur de la discussion Hayss
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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.
 
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
 
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
 
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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
90
  • Question Question
Microsoft 365 Lecture vocale USF
Réponses
5
Affichages
178
Réponses
13
Affichages
450
Réponses
10
Affichages
359
Retour