Autoriser uniquement les chiffres, point et signe - dans une textbox

Contenu du snippet

Ce code permet de tester les caracteres de plusieurs textbox à l'aide de l'evenement keypress.Il permet aussi de tester si un caractere a ete tapé deux fois dans la meme textbox.

Source / Exemple :


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

Conclusion :


J'ai essayé de mettre un select case pour tester les valeurs de keyascii mais ca ne marchait pas donc j'ai opté pour la solution bourrin certes peu elegante mais efficace.On peut changer la valeur des tests de keyascii pour n'avoir par exemple que des lettres, de meme pour le point et le signe -
Ah oui quand je dis virgule dans mon programme ca fait reference a un point a vous de changer la valeur de keyascii pour avoir une virgule ( 44 ).

Bon n'hesitez pas a le critiquer c'est ma premiere source, bourrin mais elle marche si elle peut aider qqn c'est cool.Si qqn a des conseils a me donner pas de prob lol.

ciao

A voir également

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.