[VBA] Forcer format textbox [Résolu/Fermé]

Signaler
-
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
-
Bonjours CCM!!!

Ma question est la suivante: comment forcer le format d'un textbox pour que l'utilisateur ne puisse saisir que des chiffre compris entre
1 et 53?

Merci d'avance de votre aide!

1 réponse

Messages postés
1229
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
11 février 2016
113
Salut

Tu peux faire un test après la saisie :
If valeur >53 or valeur<1 then 
   msgbox("mauvaise saisie") 
   Action à faire 
end if

Les cons peuvent avoir l'air intelligent à première vue... Heureusement pour eux que la vitesse de la lumière est supérieure à celle du son.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Merci!!!

J'avais également trouvé ceci:

On Erreor resume next
If Not IsNumeric(Right(Textbox1, 1)) Then
Msgbox "blablabla"
TextBox1 = Left(Textbox1, Len(TextBox1) - 1)
End If

Mais ça marquait deux fois le message d'erreur...

Mais ton code est mieux car il répond mieux à mes besoin en forçant une valeur numérique et en définnissant une plage de saisi.
En fait polux ton code renvoi une erreur dès qu'on rentre une valeur quelle qu'elle soit...
L'erreur est "Sub ou fonction non définie".
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 134
On Error Resume Next permet, en cas d'erreur, de ne pas planter l'exécution de l'application.
Utilisé tel quel ne sert à rien et est même très dangereux, puisqu'il masque un dysfonctionnement.

On Error Resume Next intercepte une erreur et demande à l'application de continuer.
Il faut gérer cette erreur, de façon "propre". On Error retourne le numéro de l'erreur s'il y en a une ou zéro s'il n'y en a pas:

Par exemple :

On Error Resume Next 
If Not IsNumeric(Right(Textbox1, 1)) Then 
    Msgbox "blablabla" 
TextBox1 = Left(Textbox1, Len(TextBox1) - 1) 
End If  

'La cas le plus généralement employé 
If Err.Number <> 0 Then 
     MsgBox Err.Number & ": " & Err.Description 
     Exit Sub 
End If


Ou bien, si on connait le numéro de l'erreur :

If Err.Number <> 0 Then 
    If Err.Number = 13 Then 
         MsgBox "La valeur attendue doit être de type entier", vbCritical, "Message Systeme" 
         Exit Sub 
    Else 
         MsgBox Err.Number & ": " & Err.Description 
         Exit Sub 
    End IF 
End If


;o)
En fait j'ai remplacé mon code par le tiens qui est bien mieux et plus précis, plus simple mais c'est ton code qui génère un erreur.
Mais en fait j'ai trouvé c'est IsNumeric et non pas IsNuméric évidemment...
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 134
Bien vu ... autant pour moi.