Userform : problème avec la saisie numérique

tytyxam

XLDnaute Nouveau
Bonjour à tous,

Je souhaitais ajouter une vérification dans ma userform qui oblige les utilisateurs à saisir uniquement des numéros. Grâce aux différents forums, y compris bien sur celui-ci, j'avais mis en place la procédure ci-dessous :

Code:
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim strpass As String
   strpass = TextBox2.Value
   If ChainePasOK(strpass) = True Then Cancel = True: TextBox2.Value = "": Beep: MsgBox "Saisie invalide concernant le numéro de FSE !"
End Sub
Private Function ChainePasOK(strpass As String) As Boolean
   If strpass = "" Then Exit Function
   If Len(Replace(strpass, ".", "")) <> Len(strpass) Then ChainePasOK = True: Exit Function
   If Len(strpass) = 1 And InStr("1234567890", strpass) = 0 Then ChainePasOK = True: Exit Function
   strpass = Replace(strpass, ",", ".")
   If Len(CStr(Val(strpass))) <> Len(strpass) Then ChainePasOK = True
End Function

Le problème c'est que la plupart des numéros commencent par 0, et ma vérification bloque la saisie de ce type de numérotation. J'aimerais donc pouvoir trouver une solution ou un code alternatif qui me permette de saisir des numéros commençant par 0.

Merci d'avance.

Maxime
 

Pierrot93

XLDnaute Barbatruc
Re : Userform : problème avec la saisie numérique

Bonjour,

peut être ceci :
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

bon après midi
@+
 

tytyxam

XLDnaute Nouveau
Re : Userform : problème avec la saisie numérique

Hélas ça ne fonctionne pas. Le problème n'est pas gravissime car je peux demander aux utilisateurs de ne pas indiquer les 0, mais j'aurais aimé avoir un peu plus de marge de manoeuvre.
 

Papou-net

XLDnaute Barbatruc
Re : Userform : problème avec la saisie numérique

Bonjour tytyxam, Pierrot,

Ta réponse est bizarre, tytyxam, car la macro que Pierrot t'a proposée fonctionne parfaitement.

Es-tu sûr d'avoir supprimé ta procédure TextBox2_BeforeUpdate avant de faire l'essai ?

Cordialement.
 

Discussions similaires