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 :

Accepter que des entiers dans une textbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Points : 66
    Points
    66
    Par défaut Accepter que des entiers dans une textbox
    Bonjour,

    je voudrais savoir comment n'accepter que des entiers dans une textbox

    merci d'avance de votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Dans l'exit de ton textbox, tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If isnumeric(textbox1.value) then textbox1 = Int(textbox1.value)
    Si tu veux ajouter un message pour prévenir...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If isnumeric(textbox1.value) then
         If int(textbox1.value) < Textbox1.value then
              Msgbox "J'ai dit des entiers, patate !"
              Cancel = True 'empêche de sortir du textbox
            else
              Cancel = false
         endif
    endif
    A+

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    salut,

    j'ai un problème avec le code, je l'ai modifié un peu mais c pas mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If IsNumeric(TextBox3.Value) Then
         If Int(TextBox3.Value) < TextBox3.Value Or TextBox3.Value < 0 Then
              MsgBox "J'ai dit des entiers !!!!!!!!!"
              Cancel = True 'empêche de sortir du textbox
         Else
              Cancel = False
         End If
    Else
         MsgBox "J'ai dit des entiers!"
         Cancel = True 'empêche de sortir du textbox
    End If
    pour n'importe quel nombre, il renvoi "j'ai dit des entiers !!!!!!!!"
    C'est donc un problème de condition mais ya quelque chose qui m'échappe.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Effectivement, un Textbox utilisé ainsi renvoie un string, non une valeur. Autant pour moi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If IsNumeric(TextBox3.Value) Then
         If Int(Val(TextBox3.Value)) < Val(TextBox3.Value) Or Val(TextBox3.Value) < 0 Then
              MsgBox "J'ai dit des entiers !!!!!!!!!"
              Cancel = True 'empêche de sortir du textbox
         Else
              Cancel = False
         End If
    Else
         MsgBox "J'ai dit des valeurs !"
         Cancel = True 'empêche de sortir du textbox
    End If
    Mais tu pourrais aussi interdire le point et la virgule lors de la saisie et envoyer un beep ou un message le cas échéant. Seulement si tu n'as que quelques textbox. S'il y en a plusieurs, pour ma part je préfère toujours une validation générale.
    Tu dis
    A+

  5. #5
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    une validation générale pourrai ^tre mieux car j'aurai plusieurs cas similaire aprés.

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 467
    Points : 493
    Points
    493
    Par défaut
    Bonjour
    voici une technique très pratique pour n'autoriser que la saisie de nombres entiers dans un TexteBox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
         ' Si la valeur n'est pas comprise entre 0 et 9 et qu'elle n'est pas un backspace 
           If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then
                KeyAscii = 0 'on annule la pression sur la touche
            End If
     End Sub
    Bonne journée à vous tous.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    merci abed H

    parfais la technique

    bonne journée

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu as également la solution de vérifier le caractère numérique de la saisie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
         If keyascii = 8 then exit sub 'permet de quitter le contrôle même vide
         if not chr(Keyascii) like "#" then KeyAscii = 0
    End Sub

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/04/2017, 21h33
  2. saisir que des integer dans une textbox
    Par timsa7 dans le forum VB.NET
    Réponses: 19
    Dernier message: 28/10/2010, 13h58
  3. n'utiliser que des entiers dans un textbox
    Par MkcookieFIFO dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/05/2010, 10h48
  4. Ne rentrer que des chiffres dans une TextBox
    Par nimois3O dans le forum ASP.NET
    Réponses: 25
    Dernier message: 11/06/2007, 11h44
  5. Réponses: 1
    Dernier message: 18/04/2007, 13h39

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