1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| Private Sub TextBox_ht_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Si la valeur de textbox_ht est un nombre sans virgule alors on rajoute la virgule et deux 0
TextBox_ht = IIf(IsNumeric(TextBox_ht), Format(TextBox_ht, "###0.00"), "")
End Sub
Private Sub TextBox_ht_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Seule une valeur numérique peut être entré
If InStr("0123456789.", Chr(KeyAscii)) = 0 Then KeyAscii = 0
'Si le caractère saisi est le 1er et qu'il s'agit d'un point alors j'ajoute 0 devant
If Len(TextBox_ht) = 1 And TextBox_ht = "." Then TextBox_ht = "0,"
'Si le caractère saisi est un point, on le remplace par une virgule
If Chr(KeyAscii) = "." Then KeyAscii = 44
'Si un point est déjà dans la chaine on ne peut pas en taper un autre
If InStr(TextBox_ht.Value, ",") <> 0 And Chr(KeyAscii) = "," Then KeyAscii = 0
'S'il existe un point dans le TextBox : InStr(TextBox_ht.Value, ".") <> 0
'et que la longueur de la chaine contenue dans le textbox : Len(TextBox_ht.Value)
'est supérieure à la place du . dans la chaine + 1 > InStr(TextBox_ht.Value, ".") + 1
'alors on annule la saisie : Then KeyAscii = 0
If InStr(TextBox_ht.Value, ",") <> 0 And Len(TextBox_ht.Value) > InStr(TextBox_ht.Value, ",") + 1 Then KeyAscii = 0
End Sub |
Partager