Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Imposer une virgule au lieu d'un point dans textbox; procédure ne fonctionne pas

donpopo

XLDnaute Occasionnel
Bonsoir le forum;
dans mon programme, j'utilise sur plusieurs textbox de différents userform la procédure ci-dessous:
VB:
'-------------------------------------------------------------
'imposer encodage de chiffres, d'une virgule pour facture eaux
'-------------------------------------------------------------
Private Sub textbox202_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 46 Then KeyAscii = 44
    If InStr("1234567890,", Chr(KeyAscii)) = 0 Or TextBox202.SelStart > 0 And Chr(KeyAscii) = "-" Or InStr(TextBox202.Value, ",") <> 0 And Chr(KeyAscii) = "," Then
        KeyAscii = 0: Beep
    End If
End Sub

Cela fonctionne pour tous mes textbox sauf 2 (dont celui en question dans l'exemple ci-dessus). Si je clique sur le point, celui-ci ne se convertit pas en virgule.
Je ne comprends pas très bien ce qui empêche le point d'être remplacé par une virgule.

Si quelqu'un a une idée, merci d'avance,
donpopo
 
Solution
Merci à tous trois,
je ne sais pas ce qu'il s'est passé, mais j'ai fait un copier/coller d'une procédure dans un autre userform et j'ai modifier l'index du textbox en fonction et cela fonctionne.Encore merci et
A+

patricktoulon

XLDnaute Barbatruc
re
et bien soit
VB:
Private Sub texto_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    With ActiveControl
        If KeyAscii = 46 Or KeyAscii = 44 Then KeyAscii = IIf(InStr(.Value, ",") > 0 Or Len(.Value) = 0, 0, 44)
        If Chr(KeyAscii) = "-" And Len(.Value) > 0 Then KeyAscii = 0
        If InStr(1, "0123456789,-", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End With
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    texto_KeyPress KeyAscii
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    texto_KeyPress KeyAscii
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…