zodiaque11
Messages postés10Date d'inscriptionjeudi 15 mai 2008StatutMembreDernière intervention29 juillet 2008
-
25 mai 2008 à 17:10
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
25 mai 2008 à 21:05
salut
je suis un debutant
j'ai crée un textbox nommé TxtCapital alors j'ai arrivé à interdire de saisir des lettres dedans en utilisant Keypress
mais je veux que l'utilisateur ne pourra saisir que 2 chiffres apres virgule.Si quelqu'un peut m aider
merci d avance
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 25 mai 2008 à 18:27
Bonjour,
un exemple avec instr
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
pos = InStr(Text1.Text, ",")
If Text1.SelStart >= pos And pos > 0 Then
deci = Mid(Text1.Text, pos + 1)
If Len(deci & Chr(KeyAscii)) > 2 Then
KeyAscii = 0: beep
End If
End If
End Sub
Bien que tu puisses également utiliser Like (ce que je préfère) ...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 25 mai 2008 à 21:05
Bon...
Tant qu'à faire, je préfère que tu fasses ainsi, dans ce cas :
Private Sub Text1_KeyPress(KeyAscii As Integer)
dim sepdecimal as string, pos as integer, deci as integer
sepdecimal = "," 'ici le séparateur décimal de ton choix
pos = InStr(Text1.Text, sepdecimal)
If KeyAscii = 8 Then Exit Sub If pos 0 And Chr(KeyAscii) sepdecimal Then Exit Sub
If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0: beep: Exit Sub If pos > 0 And Chr(KeyAscii) sepdecimal Then KeyAscii 0: beep: Exit Sub
If Text1.SelStart < pos Then Exit Sub
If pos > 0 Then
deci = Mid(Text1.Text, pos + 1) If Len(deci) 2 Then beep: KeyAscii 0: Exit Sub
End If
End Sub
Bien que ce ne soit pour moi pas vraiment satisfaisant (le premier coquin venu t'y collera quelque chose venant du presse papiers... sans que tu n'y puisses rien !)
Tu pourrais alors au moins rajouter cette parade au copier-coller :
Private Sub Text1_GotFocus()
Clipboard.Clear
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Clipboard.Clear
End Sub
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Clipboard.Clear
End Sub
Mais tu devrais plutôt faire un petit tour dans mes sources (il y en a une qui t'intéresse, me semble-t-il)