Bonjour, Il s'agit d'une petite procédure pour contrôler la saisie dans un textbox.
Cette procédure limite donc la saisie au nombre avec ou sans virgule.
Les paramètres à passer sont
1 Le contrôle
2 Le code ascii saisi
3 le nombre de chiffre après la virgule
Voir code ci dessous.
Source / Exemple :
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' On valide la saisie
Else
KeyAscii = SaisieNombre(Text1, KeyAscii, 3)
End If
End Sub
' Dans un module
Public Function SaisieNombre(ZonedeSaisie As Control, KeyAscii As Integer, deci As Long)
' Contrôle la saisie d'un nombre à virgule
If KeyAscii > 32 And KeyAscii < 126 Then
If KeyAscii = 44 Or KeyAscii = 46 Then ' 44 => , 46=> .
If InStr(ZonedeSaisie.Text, ".") = 0 Then
KeyAscii = 46
Else
KeyAscii = 0
End If
Else
If KeyAscii = 45 Then
If InStr(ZonedeSaisie, Chr$(KeyAscii)) = 0 Then
ZonedeSaisie = "-" + ZonedeSaisie 'Inverser le nombre , négatif , positif
Else
ZonedeSaisie = Right(ZonedeSaisie, Len(ZonedeSaisie) - 1)
End If
SendKeys "{END}"
KeyAscii = 0
Else
If InStr("1234567890-", Chr$(KeyAscii)) = 0 Then
KeyAscii = 0
Else
If InStr(ZonedeSaisie.Text, ".") > 0 And KeyAscii = 46 Then KeyAscii = 0 ' Si le point existe, alors on retourne 0
End If
End If
End If
If Left(Right(ZonedeSaisie, deci + 1), 1) = "." Then
KeyAscii = 0
End If
Else
If KeyAscii = 8 Then ' BackSpace
Else
KeyAscii = 0
End If
End If
Conclusion :
Nota , vous pouvez remplacer le point par une virgule , il suffit de tester le code 44 au lieu du 46
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.