Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Obliger saisie dans TextBox en chiffres, a partir du nombre 0 jusqu'au 8

Bernard-Louis

XLDnaute Occasionnel
Bonjour,
Comment est il possible dans une TextBox d'un formulaire, d'obliger la saisie de nombres compris entre 0 et 8.(avec et sans décimales)
Car la saisie par jour ne doit pas depasser 8 heures.
Merci pour l'aide
 

Odesta

XLDnaute Impliqué
Re : Obliger saisie dans TextBox en chiffres, a partir du nombre 0 jusqu'au 8

Bonjour

Je pense qu'une formule du genre

Si (le contenu du texte box n'est pas un nombre) ou (le contenu du texte box est inférieur à 0 ou supérieur à 8) alors
(supprimer le contenu du texte box)

Cela fonctionne assez bien. On peut même rajouter un message pour mensionner de ne mettre que des heures entre 0 et 8.

Une nuance toutefois : il est bon de rajouter un (tranformer les "." en ",") car les utilisateurs aiment bien utiliser le point du clavier numérique car le "." transformera un "long" en "string" (sauf réglage spécifiques de votre Excel)


Cdt
Olivier
 

kjin

XLDnaute Barbatruc
Re : Obliger saisie dans TextBox en chiffres, a partir du nombre 0 jusqu'au 8

Bonjour,
Code:
Private Sub TextBox1_Change()
If Len(TextBox1) > 1 Then TextBox1 = Left(TextBox1, 1)
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr(1, "012345678", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
A+
kjin
 

Bernard-Louis

XLDnaute Occasionnel
Re : Obliger saisie dans TextBox en chiffres, a partir du nombre 0 jusqu'au 8

Merci Odesta, KJIN,

Le problème que j'ai avec le code de KJIN :
Il ne me prend pas 0,5 heure et il ne bloque pas la saisie si j'inscris 10 heures par exemple.
Quelle serait la solution ?
Merci pour l'aide
 

kjin

XLDnaute Barbatruc
Re : Obliger saisie dans TextBox en chiffres, a partir du nombre 0 jusqu'au 8

Re, sakut Odesta,
Il ne me prend pas 0,5 heure
Effectivement, j'ai zappé cette partie
et il ne bloque pas la saisie si j'inscris 10 heures par exemple.
Là par contre je m'étonne !

Nouvelle mouture...
Code:
Private Sub TextBox1_Change()
If Val(TextBox1) > 8 Then TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr(1, "0123456789,", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
...qui n'empêchera pas d'inscrire 0,84562, alors quoi fait-on ?
A+
kjin
 

Bernard-Louis

XLDnaute Occasionnel
Re : Obliger saisie dans TextBox en chiffres, a partir du nombre 0 jusqu'au 8

Merci KJIN,

C'est ok comme cela.
je formate la colonne "Source" qui reçois les données du formulaire pour arrondir 0,84562 à 1 et 0,1234 à 0,5.
Merci encore et bon WE
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…