Soyez le premier à donner votre avis sur cette source.
Snippet vu 8 750 fois - Téléchargée 30 fois
Public Sub TextAscii(Text As Object, KeyAscii As Integer, virgule As Boolean, signe As Boolean) Dim positionpoint As Integer 'on recherche la position du . dans la chaine positionpoint = InStr(1, Text, ".") Select Case KeyAscii Case 48 To 57: Case 8: Case 45: 'si on ne veut que des chiffres positifs If signe = False Then: KeyAscii = 256 'si on a deja un signe - le programme ne tient pas compte des autres If Len(Text) <> 0 Then: KeyAscii = 256 Case 46: 'si on ne veut pas de chiffres a virgule If virgule = False Then: KeyAscii = 256 'empeche d'ecrire un . ( virgule) au debut de la textbox If Len(Text) = 0 Then KeyAscii = 256 Else If Len(Text) = 1 Then 'empeche d'ecrire un . apres un signe moins If Text = "-" Then KeyAscii = 256 Else End If Else 'si l'on a deja un . le programme ne tient pas compte des autres If positionpoint <> 0 Then KeyAscii = 256 Else End If End If End If Case Else: KeyAscii = 256 End Select End Sub
quand tu dis que je peux remplacer tout ceci :
If keyascii <> 45 And keyascii <> 46 And keyascii <> 48 And keyascii <> 49 And keyascii <> 50 _
And keyascii <> 51 And keyascii <> 52 And keyascii <> 53 And keyascii <> 54 And keyascii <> 55 _
And keyascii <> 56 And keyascii <> 57 And keyascii <> 8 Then keyascii = 24
par :
if (keyascii < 45 and keyascii > 57) and keyascii <> 8 then keyascii = 24
ca ne marche pas.Si tu mets if (keyascii < 45 0R keyascii > 57) and keyascii <> 8 then keyascii = 24
cela marche exepte qu'on ne bloque pas / caractere 47.
Autrement le reste de ton code est bon il marche chez moi
Voila encore merci de ton aide
Salut
Salutations.
1. le signe '-' doit être que à la première position.
2. le nombre de chiffre apres la virgule.
3. la virgule ne doit-être apres le signe "-".
Public Sub TextAscii(Text As Object, KeyAscii As Integer, virgule As Boolean, PositionVirgule As Integer, signe As Boolean)
Dim Pointv As Integer
Pointv = InStr(1, Text, ".")
Select Case KeyAscii
Case 48 To 57:
If Pointv <> 0 Then
If Len(Text.Text) >Pointv + PositionVirgule Then: KeyAscii 256
End If
Case 8:
Case 45:
If signe False Then: KeyAscii 256
If Len(Text) <> 0 Then: KeyAscii = 256
Case 46:
If virgule False Then: KeyAscii 256
If Len(Text) = 0 Then
KeyAscii = 256
Else
If Len(Text) = 1 Then
If Text = "-" Then
KeyAscii = 256
Else
End If
Else
If Pointv <> 0 Then
KeyAscii = 256
Else
End If
End If
End If
Case Else: KeyAscii = 256
End Select
End Sub
L'idée de limiter le nombre de décimales peut être intéressante dans certains cas...
Bibinutz pourrait rajouter ce paramètre dans sa sub...
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.