Ecrire juste des chiffres dans une zone de texte

nourhanan Messages postés 26 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 21 novembre 2009 - 30 oct. 2009 à 18:02
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 3 nov. 2009 à 08:18
Salut


pour ecrire juste des chiffres dans une zone de texte j'ai fait le code suivant:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii <> 8 Then
    If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
End If

End Sub


une autre condition imposé c'est que je dois controler le nombre des chiffres entrée càd entree deux ou trois chiffre. comment je peux ajouter cette condition dans la procedure "Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)"

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 oct. 2009 à 18:25
MaxLength est là pour ça


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
30 oct. 2009 à 18:27
Bonjour,
MaxLength est une propriété à utiliser (à définir à 3, donc)
Pour la longueur minimum, par contre, il va te falloir la vérifier non au moment de la frappe, mais quand tu quittes ta textbox.
0
nourhanan Messages postés 26 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 21 novembre 2009
2 nov. 2009 à 11:55
salut

je veux vérifier au moment de la frappe.y a t-il pas de moyen??
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
2 nov. 2009 à 13:02
Hé bé !
- Tu peux empêcher de saisir plus du maximum (pendant la saisie, donc) et la solution t'a été donnée...
- Il est impossible, pendant la saisie, de vérifier que le minimum de deux a été frappé ! (tu ne peux le savoir qu'une fois la saisie terminée, par définition).
- cela relève d'un minimumù de réflexion....

Question pour toi (hors informatique)= :
Un coureur A a un mur (une limite supérieure, donc) devant lui, à 3 pas ...
Il est sur qu'il ne pourra jamais dépasser ce mur
A quel moment, au cours de ses pas de course et alors qu'il en a déjà fait deux (ou même un) , penses-tu pouvoir déterminer qu'il n'a pas l'intention de faire un troisième pas (ou deux autres pas) ? .... Il va bien falloir que tu attendes qu'il s'arrête d'en faire, non, pour savoir s'il en a fait au moins deux !
Je n'en crois pas mes yeux !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nourhanan Messages postés 26 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 21 novembre 2009
2 nov. 2009 à 17:15
croyez moi qu'il a un moyen, car j'ai déja vu une application qui ne permet pas de saisir, pendant la saisie,lorsque l'utilisateur depasse 2 nombres.
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
2 nov. 2009 à 19:12
Bé !
Tu sais lire ce que lon écrit, oui ?
On ne peut pas dépasser la limite maximum que l'on a définie (personne ne le conteste) par la propriété Maxlength (3 dans ton cas)
Mais on ne peut rien vérifier (avant la fin de la saisie) en ce qui concerne le nombre minimum de caractères à saisir (2 dans ton cas, dis-tu)
Tu comprends ? Relis tout
Moi, j'abandonne, là... (je ne vois pas pourquoi je m'épuiserais dans un tel dialogue de sourds !)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 nov. 2009 à 08:18
zone de texte par défault à 10 (ben ouais, deux caractères...)

l'utilisateur veux saisir 258

cool, il ne peut supprimer de caractère (MinLength à 2)
il ajoutes donc un 2

210
supprime le 1
20
ajoutes un 5
250
supprime le 0
25
ajoute son 8
258

et voilà ^^

non, mais reflechis deux minutes, c'est une horreur à faire, comme manipulation...

saisie libre pour tout le monde...
Appliques le style ES_NUMBER, n'autorisant automatiquement la saisie que de numériques

Et au LostFocus ou au Validate, assures toi que la saisie est correcte...
ce sera plus de confort pour l'utilisateur.

de même, assures toi que le contenu est correct après avoir collé du etxte dans a zone.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Rejoignez-nous