chiffres automatiques à la place des caractères spéciaux dans textbox

jecirbe

XLDnaute Junior
Bonjour à tous
je travaille sur un fichier dans lequel j'ai créer un userform avec un textbox. Ce textbox me permet de renseigner la date de naissance. Je la renseigne en "brut" jjmmaaaa et en sortant le focus de ce textbox, la date se formate automatiquement en jj/mm/aaaa. Jusque là tout va bien
J'utilise mon userform pour faire de la saisie et je fais cette saisi sur un portable. Ce que j'ai essayé de faire en utilisant select case c'est de transformer immédiatement les caractères spéciaux &, é, ", ', (, -, è, _, ç, à, en leur chriffre correspondant 1,2,3 ...etc. Mais ça marche pas :(
ci dessous les bouts de code (je n'arrive pas à faire un fichier moins gros que 348ko :( )
Ma textbox se nomme TxtNaisassance
Code:
Private Sub TxtNaissance_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Dim naiss As String
'naiss = TxtNaissance.Text
'Select Case Len(naiss)
'Case 2, 5
'naiss = naiss & "/"
'End Select
If TxtNaissance.Value = "" Then Exit Sub
TxtNaissance.Text = Format(TxtNaissance.Value, "##/##/####")
End Sub
Private Sub TxtNaissance_keyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     Select Case KeyAscii
    Case KeyAscii = 38   '&
        KeyAscii = 49
    Case KeyAscii = 233  'é
        KeyAscii = 50
    Case KeyAscii = 33
        KeyAscii = 51
    Case KeyAscii = 39  ' apostrophe
        KeyAscii = 52
    Case KeyAscii = 40  ' (
        KeyAscii = 53
    Case KeyAscii = 45  ' -
        KeyAscii = 54
    Case KeyAscii = 232  'è
        KeyAscii = 55
    Case KeyAscii = 137  '_ underscore
        KeyAscii = 56
    Case KeyAscii = 231  'ç
        KeyAscii = 57
    Case KeyAscii = 224  'à
        KeyAscii = 58
    Case Else
    If Not ((KeyAscii >= 48 And KeyAscii <= 57)) Then  ' Si la valeur n'est pas comprise entre 0 et 9
        KeyAscii = 0 'on annule la pression sur la touche
         End If
    End Select

End Sub

Merci d'avance à tous ceux qui se pencherons sur mon problème
cordialement
P.S si vous arrivez a trouver ou a retrouver un bout de code sur le forum ou notre ami g...gle n'hésitez pas à me le faire savoir et aussi vos mots clés pour la recherche alors car je n'ai pas trouvé
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : chiffres automatiques à la place des caractères spéciaux dans textbox

Bonjour jecirbe,

avec ceci:
revérifie les codes, nous n'avons peut-être pas le même clavier

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     Select Case KeyAscii
    Case 38    '&
        KeyAscii = 49
    Case 233  'é
        KeyAscii = 50
    Case 33
        KeyAscii = 51
    Case 39   ' apostrophe
        KeyAscii = 52
    Case 40   ' (
        KeyAscii = 53
    Case 45   ' -
        KeyAscii = 54
    Case 232  'è
        KeyAscii = 55
    Case 137   '_ underscore
        KeyAscii = 56
    Case 231  'ç
        KeyAscii = 57
    Case 224  'à
        KeyAscii = 48
    Case Else
    If Not ((KeyAscii >= 48 And KeyAscii <= 57)) Then  ' Si la valeur n'est pas comprise entre 0 et 9
        KeyAscii = 0 'on annule la pression sur la touche
         End If
    End Select
End Sub

à+
Philippe
 

jecirbe

XLDnaute Junior
[Résolu] Re : chiffres automatiques à la place des caractères spéciaux dans textbox

:)Merci Philippe
ta correction fonctionne presque parfaitement. Les chiffres 3, 8, 0 ne fonctionnent pas mais comme tu la laisser entendre i faut que je reprenne les code
Merci encore
A une prochaine
Brice
 

Discussions similaires

Statistiques des forums

Discussions
312 175
Messages
2 085 952
Membres
103 058
dernier inscrit
florentLP