IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème avec l'option "limiter les chiffres dans les textBox" [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2012
    Messages : 121
    Points : 78
    Points
    78
    Par défaut Problème avec l'option "limiter les chiffres dans les textBox"
    Bonjour

    Dans l'une de mes macros, je veux limiter l'utilisateur à inscrire uniquement des chiffres dans une textbox

    Pour ce faire, j'ai utilisé le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
        If InStr("0123456789", Chr(KeyAscii)) = 0 Then
            KeyAscii = 0
        End If
    Le code fonctionne, sauf qu'il y a un délais entre les valeurs entrées et considérées
    Par exemple, le premier chiffre n'est pas considéré tout de suite (si j'inscrit 9 dans la textbox, j'obtient 0)
    Pour que le 9 soit considéré, je dois inscrire une autre chiffre (si j'inscrit un 5 après le 9, j'obtiens 9 comme sortie)
    Si j'inscrit un nouveau chiffre, je vais avoir 95 comme sortie.

    Pourquoi y a t'il ce délais et comment l'éliminer?

    Merci

  2. #2
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Bonjour,

    Peut-être via la function isnumeric
    Quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Private Sub Textbox1_Change()
        if IsNumeric(Me.Textbox1.Value) = True
            'Good data, nothing to MSG
        Else
            MsgBox "Your input data is not valid"
            Me.Textbox1.value ="" 
        Endif
    End Sub
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Solution plus simple : la vérification à postériori.
    Après validation du champ, tu vérifies sont contenu avec un IsNumeric(). Si c'est faux, tu vides le champ (ou tu y mets la valeur par défaut).
    Lire ceci : https://docs.microsoft.com/fr-fr/off...meric-function

    Edit : devancé de quelques secondes par mfoxy.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2012
    Messages : 121
    Points : 78
    Points
    78
    Par défaut
    Un gros merci!!!

    C'est parfait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [HSQLDB] problème avec un SELECT utilisant LIMIT
    Par don_quichotte dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 12/04/2007, 23h08
  2. Problème avec l'option -llibpng
    Par Premium dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 12/11/2006, 11h40
  3. problème avec une requete utilisant LIMIT
    Par kow_Ced dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/08/2006, 16h01
  4. [GD] Problème avec la librairie GD et les header !!
    Par jesspepette dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/10/2005, 12h09
  5. [JMeter] Problème avec la boucle infinie pour les tests
    Par zegreg dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/10/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo