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

XL 2010 Restriction Textbox nombre

TheProdigy

XLDnaute Impliqué
Bonjour tout le monde,

J'ai trouvé un code sur Net pour restreindre la saisie à nombre dans un textbox
VB:
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii > Asc("9") Or KeyAscii < Asc("0") Then
        If KeyAscii = Asc("-") Then
            If InStr(1, Me.TextBox3.Text, "-") > 0 Or _
               Me.TextBox4.SelStart > 0 Then KeyAscii = 0
        ElseIf KeyAscii = Asc(".") Then
            If InStr(1, Me.TextBox4.Text, ".") > 0 Then KeyAscii = 0
        Else
            KeyAscii = 0
        End If
    End If
End Sub
Ma question est comment adapter ce code pour qu'il
  1. N'accepte pas la virgule du chiffre le (.) sur mon clavier
  2. N'accepte pas le chiffre négatif, le signe moins (-)
Merci beaucoup
 

youky(BJ)

XLDnaute Barbatruc
Bonjour,
que de 0 à 9 et la virgule, le point est transformé en virgule.
Bruno
VB:
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("0123456789,.", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

Private Sub TextBox4_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
TextBox4.Value = Replace(TextBox4, ".", ",")
End Sub
 

TheProdigy

XLDnaute Impliqué
Bonjour @youky(BJ), bonjour le forum,
Ton code accepte plusieurs virgule genre 212.23.25.2..... Comment faire?

Merci
 

youky(BJ)

XLDnaute Barbatruc
Hello, donc voici plus simple
Bruno
VB:
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 46 And Not TextBox4 Like "*,*" Then KeyAscii = 44: Exit Sub
If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
 

Discussions similaires

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