oui, j'ai compris c'que tu veux dire, mais la solution est pas évidente ! si tu veux saisir 50, tu dois taper 5, puis 0 ; or après la frappe du 5, on peut pas savoir d'avance que si tu voulais saisir 5 tu as terminé la saisie ! donc ça oblige à attendre la frappe de 2 caractères avant de faire le test ➯ pour 5 à 9, tu dois saisir un zéro devant : 05 ; 06 ; 07 ; 08 ; 09 ; cela avec ce nouveau code VBA :
Option Explicit
Sub TextBox1_Change()
Dim chn$, lng As Byte, vx%
lng = Len(TextBox1): If lng < 2 Then Exit Sub '1 seul caractère ; ou 0 caractère si Suppr
chn = "Erreur" 'valeur par défaut, qui sera mise à "OK" si c'est bon
If lng = 2 Then
vx = Val(TextBox1): If vx >= 5 And vx <= 50 Then chn = "OK"
End If
MsgBox chn 'si longueur >= 2 : affichage de "Erreur" ou "OK"
End Sub
comme tu n'as pas de raison de saisir 0 devant 10 à 50, un nombre sur 3 chiffres (ou plus) sera forcément une erreur car du fait que le nombre minimum sur 3 chiffres est 100, il est forcément > 50 !
dhany