Probleme Avec ma sasie TEXTBOX

Fermé
Ofeu Messages postés 26 Date d'inscription mardi 21 août 2018 Statut Membre Dernière intervention 11 septembre 2018 - 22 août 2018 à 12:41
Ofeu Messages postés 26 Date d'inscription mardi 21 août 2018 Statut Membre Dernière intervention 11 septembre 2018 - 23 août 2018 à 23:22
Bonjour,

J'ai un petit souci avec ma textBox1. En effet, j'ai appliqué une limite acceptable entre 10 et 25, et si j'applique d'autre valeurs < à 10 ou supérieur à 25, j'affiche la msg "Entry a value between 10 and 25 kg/day".

Mon problème est que quand je veux mettre 21 (par exemple), au moment que je mets 2 (avant de mettre 1), le message apparapït directement avant que je puisse mettre le 1 (c'est à dire 21).
Je voulais qu'il affiche le message à la fin de ma saisie.


Private Sub TextBox1_Change()
TextBox1.MaxLength = 2
If Not IsNumeric(TextBox1.Value) And TextBox1 <> "" Then
MsgBox "Entry a number"
TextBox1 = ""
ElseIf TextBox1.Value < 10 Or TextBox1.Value > 25 And TextBox1 <> "" Then
MsgBox "Entry a value between 10 and 25 kg/day"

End If

Sheets("Model_FA").Range("B13").Value = TextBox1.Value
End Sub

2 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
22 août 2018 à 14:26
Bonjour,

Ajoute une condition Len(TextBox1.Value)=2.

PS : ton stage se passe bien ?
0
danielc0 Messages postés 1250 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 8 novembre 2024 139
22 août 2018 à 14:31
Bonjour,

Modifie :

Private Sub TextBox1_Change()
TextBox1.MaxLength = 2
If Len(TextBox1.Text) < 2 Then Exit Sub
If Not IsNumeric(TextBox1.Value) And TextBox1 <> "" Then
MsgBox "Entry a number"
TextBox1 = ""
ElseIf TextBox1.Value < 10 Or TextBox1.Value > 25 And TextBox1 <> "" Then
MsgBox "Entry a value between 10 and 25 kg/day"

End If

Sheets("Model_FA").Range("B13").Value = TextBox1.Value

End Sub


Daniel
0
Ofeu Messages postés 26 Date d'inscription mardi 21 août 2018 Statut Membre Dernière intervention 11 septembre 2018
23 août 2018 à 13:37
Merci beacoup de votre aide, c'est presque là !!!!

Maintenant le problème est : si l'utilisateur mets 9, il accepte. Cependant, Il ne va pas accepter si je mets 09 (c'est à dire si je saisis les 2 numéros, logique !). Idem pour 2 (il faut mettre 02, pour que je reçois une msg "Entry a value between 10 and 25 kg/day").
Vous savez comment je peux faire si j'ajoute la valeur 2 par exemple et il envoie la message "Entry a value between 10 and 25 kg/day" seulement quand je sors de la cellule ?

voici le fichier
https://www.cjoint.com/c/HHxlHYoNbAg

Merci bcpppp
Lucas
0
danielc0 Messages postés 1250 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 8 novembre 2024 139
23 août 2018 à 14:57
Utilise cette macro :

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim Sh As Worksheet
If KeyCode = 13 Then
If Not IsNumeric(TextBox1.Value) And TextBox1 <> "" Then
MsgBox "Entry a number"
TextBox1 = ""
Exit Sub
End If
If CDbl(TextBox1.Value) < 10 Or CDbl(TextBox1.Value) > 25 And TextBox1 <> "" Then
MsgBox "Entry a value between 10 and 25 kg/day"
End If
Sheets("Model_FA").Range("B13").Value = TextBox1.Value
End If
End Sub

au lieu de :

Private Sub TextBox1_Change()


C'est la touche "Entrée qui déclenche la macro.

Daniel
0
Ofeu Messages postés 26 Date d'inscription mardi 21 août 2018 Statut Membre Dernière intervention 11 septembre 2018
23 août 2018 à 16:08
Merci DAniel !!!
Ca marche très bien.

Si je peux me permettre ;- ) ==> Je ne peux pas afficher la message lorsque je change de cellule non plus ? sans être obligé à appuyer sur la touche Entrée ?

En tout cas, merci !!!
0
Ofeu Messages postés 26 Date d'inscription mardi 21 août 2018 Statut Membre Dernière intervention 11 septembre 2018
23 août 2018 à 16:09
... lorsque je saisie une valeur inférieur à 10 ou supérieur à 25.

Merci
0
danielc0 Messages postés 1250 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 8 novembre 2024 139
23 août 2018 à 16:55
Ajout la macro :

Private Sub TextBox1_LostFocus()
If Not IsNumeric(TextBox1.Value) And TextBox1 <> "" Then
MsgBox "Entry a number"
TextBox1 = ""
Exit Sub
End If
If CDbl(TextBox1.Value) < 10 Or CDbl(TextBox1.Value) > 25 And TextBox1 <> "" Then
MsgBox "Entry a value between 10 and 25 kg/day"
End If
Sheets("Model_FA").Range("B13").Value = TextBox1.Value
End Sub


Daniel
0