Valeur maximale d'un textbox
Résolu
SpcCwb
Messages postés
67
Statut
Membre
-
SpcCwb Messages postés 67 Statut Membre -
SpcCwb Messages postés 67 Statut Membre -
Bonjour,
Je cherche à bloquer la valeur maximale du textbox3 de mon userform à 100.
Si jamais l'utilisateur tape une valeur supérieure alors MsgBox l'avertissant et effacer le contenu du textbox.
J'ai également une règle concernant la casse autorisée, celle-ci fonctionne très bien.
Mon problème est que lorsque j'efface le contenu de mon textbox, le MsgBox apparaît. Lorsqu'une valeur supérieure à 100 est saisie, le textbox ne se vide pas. Et lorsque je commence à saisir dans le textbox le MsgBox apparaît..
Je vous joint le fichier, et voici le code que j'utilise.
Merci d'avance du coup de main
Le fichier: https://www.cjoint.com/c/HHCn2OKz3EI
Je cherche à bloquer la valeur maximale du textbox3 de mon userform à 100.
Si jamais l'utilisateur tape une valeur supérieure alors MsgBox l'avertissant et effacer le contenu du textbox.
J'ai également une règle concernant la casse autorisée, celle-ci fonctionne très bien.
Mon problème est que lorsque j'efface le contenu de mon textbox, le MsgBox apparaît. Lorsqu'une valeur supérieure à 100 est saisie, le textbox ne se vide pas. Et lorsque je commence à saisir dans le textbox le MsgBox apparaît..
Je vous joint le fichier, et voici le code que j'utilise.
Merci d'avance du coup de main
Private Sub Textbox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) TextBox3.MaxLength = 3 Select Case KeyAscii Case 44, 46 ' que l'on frappe une virgule ou un point If InStr(TextBox3.Text, ",") Then 'si déjà une virgule présent KeyAscii = 0 'on ne permet pas deux virgules Else ' sinon KeyAscii = 44 'on force la une virgule End If Case 48 To 57 'on laisse passer car ce sont des chiffres Case Else KeyAscii = 0 'on ne laisse pas passer End Select If TextBox3.Value > 100 Then MsgBox "Valeur maximale = 100" TextBox3.Value = "" Exit Sub End If End Sub
Le fichier: https://www.cjoint.com/c/HHCn2OKz3EI
A voir également:
- Valeur maximale d'un textbox
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur ascii - Guide
- Excel ne pas afficher #valeur ✓ - Forum Excel
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum MacOS
1 réponse
Bonjour,
Tu peux essayer
Je ne suis pas sûr que MaxLength=3 soit judicieux avec des nombres décimaux
A+
Tu peux essayer
Private Sub Textbox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) TextBox3.MaxLength = 3 Select Case KeyAscii Case 44, 46 ' que l'on frappe une virgule ou un point If InStr(TextBox3.Text, ",") Then 'si déjà une virgule présent KeyAscii = 0 'on ne permet pas deux virgules Else ' sinon KeyAscii = 44 'on force la une virgule End If Case 48 To 57 'on laisse passer car ce sont des chiffres If CDbl(TextBox3.Value & (KeyAscii - 48)) > 100 Then MsgBox "Valeur maximale = 100" KeyAscii = 0 'on ne permet pas de valeur supérieure à 100 End If Case Else KeyAscii = 0 'on ne laisse pas passer End Select End Sub
Je ne suis pas sûr que MaxLength=3 soit judicieux avec des nombres décimaux
A+
J'ai juste changer le numéro de la textbox de cette ligne: en
Parfait!
Effectivement maintenant je peux retirer MaxLength=3
Merci encore!