XL 2016 Saisie unique des chiffres dans le textbox

  • Initiateur de la discussion Initiateur de la discussion melltel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

melltel

XLDnaute Occasionnel
bonjour,
svp je cherche a bloquer la saisie des lettres et autres caractéres dans ma textbox.
tout en autorisant juste des chiffres et en signalant lorqu'on ne saisie pas les nombres, par un Msgbox ''valeur incorrete''.
mon code est:

Private Sub R08_VUE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("0123456789:/", Chr(KeyAscii)) = 0 Then KeyAscii = 0
Else
MsgBox ("La valeur saisie n'est pas conforme")
End If
End Sub

merci!!!
 
bonjour
pas testé m&ais cela devrait le faire
VB:
Private Sub R08_VUE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("0123456789:/", Chr(KeyAscii)) = 0 Then
        KeyAscii = 0
        MsgBox ("La valeur saisie n'est pas conforme")
    End If
End Sub
 
Bonjour melltel,
VB:
Private Sub R08_VUE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("0123456789:/", Chr(KeyAscii)) = 0 Then MsgBox "La valeur saisie n'est pas conforme": KeyAscii = 0
End Sub
Edit : salut JHA, JM27, pas rafraîchi, XLD ne se met pas à jour assez souvent.

A+
 
Dernière édition:
bonjour
pas testé m&ais cela devrait le faire
VB:
Private Sub R08_VUE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("0123456789:/", Chr(KeyAscii)) = 0 Then
        KeyAscii = 0
        MsgBox ("La valeur saisie n'est pas conforme")
    End If
End Sub
ceci affiche juste le MsgBox sans respecter la condition. au click,c'est seulement le message d'erreur qui s'affiche.
enfet je desire avoir une condition...si c'est un chiffre ca passe et remplie mon tableau sinon affiche le MsgBox "la valeur saisie n'est pas conforme" ceci avec le keyPress.
merci!
 
bonjour
pas testé m&ais cela devrait le faire
VB:
Private Sub R08_VUE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("0123456789:/", Chr(KeyAscii)) = 0 Then
        KeyAscii = 0
        MsgBox ("La valeur saisie n'est pas conforme")
    End If
End Sub
merci.
voici la solution que m'a proposé Job75 et ca marche

Private Sub R08_VUE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("0123456789:/", Chr(KeyAscii)) = 0 Then MsgBox "La valeur saisie n'est pas conforme": KeyAscii = 0
End Sub
 
La macro précédente ne permet pas de voir le caractère erroné qui a été entré.

Mais surtout elle ne va pas du tout si l'on entre un texte par copier-coller.

Utilisez plutôt cette macro :
Code:
Private Sub R08_VUE_Change()
Dim t$, i%
t = R08_VUE
For i = Len(t) To 1 Step -1
    If InStr("0123456789:/", Mid(t, i, 1)) = 0 Then t = Left(t, i - 1) & Mid(t, i + 1)
Next
If t <> R08_VUE Then MsgBox "La valeur saisie n'est pas conforme": R08_VUE = t
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour