Bonjour,
je voudrais savoir comment n'accepter que des entiers dans une textbox
merci d'avance de votre aide
Version imprimable
Bonjour,
je voudrais savoir comment n'accepter que des entiers dans une textbox
merci d'avance de votre aide
Dans l'exit de ton textbox, tu mets
Si tu veux ajouter un message pour prévenir...Code:If isnumeric(textbox1.value) then textbox1 = Int(textbox1.value)
A+Code:
1
2
3
4
5
6
7
8 If isnumeric(textbox1.value) then If int(textbox1.value) < Textbox1.value then Msgbox "J'ai dit des entiers, patate !" Cancel = True 'empêche de sortir du textbox else Cancel = false endif endif
salut,
j'ai un problème avec le code, je l'ai modifié un peu mais c pas mieux.
pour n'importe quel nombre, il renvoi "j'ai dit des entiers !!!!!!!!"Code:
1
2
3
4
5
6
7
8
9
10
11 If IsNumeric(TextBox3.Value) Then If Int(TextBox3.Value) < TextBox3.Value Or TextBox3.Value < 0 Then MsgBox "J'ai dit des entiers !!!!!!!!!" Cancel = True 'empêche de sortir du textbox Else Cancel = False End If Else MsgBox "J'ai dit des entiers!" Cancel = True 'empêche de sortir du textbox End If
C'est donc un problème de condition mais ya quelque chose qui m'échappe.
Effectivement, un Textbox utilisé ainsi renvoie un string, non une valeur. Autant pour moi.
Mais tu pourrais aussi interdire le point et la virgule lors de la saisie et envoyer un beep ou un message le cas échéant. Seulement si tu n'as que quelques textbox. S'il y en a plusieurs, pour ma part je préfère toujours une validation générale.Code:
1
2
3
4
5
6
7
8
9
10
11 If IsNumeric(TextBox3.Value) Then If Int(Val(TextBox3.Value)) < Val(TextBox3.Value) Or Val(TextBox3.Value) < 0 Then MsgBox "J'ai dit des entiers !!!!!!!!!" Cancel = True 'empêche de sortir du textbox Else Cancel = False End If Else MsgBox "J'ai dit des valeurs !" Cancel = True 'empêche de sortir du textbox End If
Tu dis
A+
une validation générale pourrai ^tre mieux car j'aurai plusieurs cas similaire aprés.
Bonjour
voici une technique très pratique pour n'autoriser que la saisie de nombres entiers dans un TexteBox
Bonne journée à vous tous.Code:
1
2
3
4
5
6 Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) ' Si la valeur n'est pas comprise entre 0 et 9 et qu'elle n'est pas un backspace If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then KeyAscii = 0 'on annule la pression sur la touche End If End Sub
merci abed H
parfais la technique
bonne journée
Tu as également la solution de vérifier le caractère numérique de la saisie
Code:
1
2
3
4 Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If keyascii = 8 then exit sub 'permet de quitter le contrôle même vide if not chr(Keyascii) like "#" then KeyAscii = 0 End Sub