Obliger un textbox à ne prendre que des nombres

Salut le forum,

voilà, tout est dans la question.

J'ai un textbox dans un USF et j'aimerais qu'on ne puisse y inscrire que des nombres.

Merci pour votre aide.

Re,

j'ai trouvé ce code qui semble fonctionné mais le msgbox qui apparaît doit être fermé à 2 reprises et je ne comprends pas les lignes en rouge.

Private Sub textBox1_Change()

On Error Resume Next

If Not IsNumeric(Right(TextBox1, 1)) Then

MsgBox "Le caractère saisi n'est pas valide"

TextBox1.Text = ""

TextBox1.SelStart = 0

TextBox1.SelLength = Len(TextBox1)

End If

End Sub

bonjour,

sur le fond, tu peux te contenter de ça :

Private Sub TextBox1_Change()
On Error Resume Next
If Not IsNumeric(Right(TextBox1, 1)) Then
TextBox1.Text = Left(TextBox1, Len(TextBox1) - 1)
'
End If
End Sub

Le TextBox ne reçoit alors QUE des données numériques.

On Error Resume Next ignore une erreur éventuelle.

On Error Resume Next est indispensable au cas ou l'utilisateur commencerait sa saisie par une lettre...

On peut améliorer cette macro de base en insérant dans la ligne vide un commentaire qui invite l'utilisateur à faire plus attention.

Ce commentaire pourrait-être un "MsgBox" ou un "Label" géré de manière plus ou moins complexe...

Voir la

A+

Rien à redire, c'est exactement ce que je voulais.

Tu ne pouvais pas être plus précis galopin01.

Merci beaucoup.

Salut le forum,

je remets ça avec ce problème puisque soudainement, j'ai un bug avec ce code

Private Sub TextBox1_Change() 
On Error Resume Next 
If Not IsNumeric(Right(TextBox1, 1)) Then 
TextBox1.Text = Left(TextBox1, Len(TextBox1) - 1) 
' 
End If 
End Sub

Je ne comprends pas pourquoi puisqu'il fonctionnait très bien. J'ai cru que j'avais fait une fausse manipulation et j'ai regardé le code à partir de la démo de galopin. Même problème.

Je reçois le message "Invalid procedure call or argument"

Merci pour votre aide.

P.S. Je n'ai pas joins de fichier puisque la démo de galopin cause le même problème.

bonjour,

je n'ai ni 2007, ni la version Englais...

mais essaie quand même de convertir ton fichier en Excel 2000-2003 et voie si l'erreur subsiste. Si elle subsiste envoie ton fichier dans ce format.

ça serait bien aussi que tu donnes le numéro d'erreur que tu as (en pricipe VBA doit te dire Erreur 9, 3 ou 424... Invalid message...

De plus si tu acceptes le débogage, il doit y avoir une ligne de surlignée : ça serait bien que tu nous dises quelle est cette ligne.

A+

Salut galopin,

le problème persiste même enregistré dans une version plus ancienne.

Il s'agit d'un Run time error 5.

Sur cette ligne :

TextBox1.Text = Left(TextBox1, Len(TextBox1) - 1)

Pour recréer l'erreur, inscrit une lettre dans le textbox quand le programme te demandera le nombre d'équipes par division. Un détail, pour te simplifier la vie, indique que toutes les divisions ont le même nombre d'équipes. Ça t'évitera de faire trop de saisie inutilement.

Bonjour,

Désolé, je n'arrive pas à produire cette erreur ! On verra si quelqu'un est plus doué que moi...

A+

Rechercher des sujets similaires à "obliger textbox prendre que nombres"