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

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!!!
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Il est possible de faire cela avec la validation des données.

Edit: Oups! pas vu qu'il s'agit d'une "textbox"

JHA
 

Pièces jointes

  • Classeur validation des données.xlsx
    8.9 KB · Affichages: 9

JM27

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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:

melltel

XLDnaute Occasionnel
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!
 

melltel

XLDnaute Occasionnel
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
 

job75

XLDnaute Barbatruc
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
 

Discussions similaires

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