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 :

Inputbox et nombre entier [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut Inputbox et nombre entier
    Bonjour à toutes et à tous,

    J'ai créer un petit programme mais un problème subsiste : Je souhaite que la personne qui utilise le programme ne puisse pas entrer autre chose qu'un nombre entier compris entre 1 et 20 dans une "inputbox".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nombrevaluation = InputBox("Combien d'évaluation comptez-vous effectuer au cours de l'année scolaire ?", "Nombre d'évaluations")


    Si la personne entre autre chose ( nombre décimal, lettre, etc..... ) je souhaite qu'un message apparaisse et lui "raffiche l'inputbox".

    Est-ce quelqu'un peut m'aider ?

    Merci d'avance.


    Novice72

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    il y a 2 facon d'aborder ton soucis
    soit ut utilise un imput box et tu gere la donnée entrée
    soit tu utilise "application.inputbox qui on des parametre voir l'aide F1

    pour le inputbox comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
        myvalue = InputBox("entrez un chiffre", "inputbox numerique", 0)
        If IsNumeric(myvalue) And Val(myvalue) <= 20 Then
            MsgBox "ok"
        Else
            If myvalue <> "" Then MsgBox "veuillez entrez un nunmero valide "
        End If
    End Sub
    pour le application.inputbox comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test2()
        myvalue = Application.InputBox("entrez un chiffre", "inputbox numerique", , , , , , 1)
      If myvalue <> False And myvalue <= 20 Then
      MsgBox myvalue
    Else
    MsgBox "le numero que vous avez entré est superieur au max"
    End If
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si la saisie est réellement impérative, une méthode où on ne laisse plus le choix que de donner un nombre valable
    l'arrêt du processus est basé sur la saisie du chiffre 0, qui s'obtient également si on clique sur le bouton "annuler"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub izi()
    Dim Nombre As Long, NombreTest As Double
        Do
            NombreTest = Application.InputBox("Entrez un nombre entier entre 1 et 20", , , , , , , 1)
            If NombreTest = 0 Then Exit Do
            If NombreTest = CInt(NombreTest) And NombreTest > 0 And NombreTest < 21 Then Nombre = NombreTest
        Loop While Nombre = 0
    End Sub
    Edit : Patrick, sur la fonction InputBox de Type 1, je suis casse pied, j'ai plutôt l'habitude de travailler sur un retour 0 plutôt que False lors de l'annulation, histoire de ne pas mélanger les Types (même si au final, le comportement est identique)

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour joe oui aussi

    perso je préfère utiliser la réponse originale de VBA
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Voilà comment j'ai dans ce cas l'habitude de procéder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim bon As Boolean, entree As String
      Do While Not bon
        entree = InputBox("veuillez entrer un nombre entier entre 1 et 20")
        If StrPtr(entree) = 0 Then Exit Do ' -->> on a annulé
          If Val(entree) > 0 And Val(entree) <= 20 Then bon = True
      Loop
      ' voyons ce que nous avons saisi
      MsgBox IIf(bon, "vous avez saisi " & entree, "vous avez annulé")
    qui me permet de tout contrôler, mais également de savoir si on a annulé ou quitté

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut
    Super merci à vous tous.
    Je viens juste d'incorporer ce petit bout de programme qui fonctionne à merveille.

    Encore merci.

    NOVICE72

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Coucou tous,

    je testé tous les codes, mais celui qui correspond à la demande c'est celui de Joe x 2


    Sinon j'aime bien le code de Jacques qui permet de tout contoler
    et les code de Patrick pour montrer différentes méthodes

    à qui (J., J., P.) je passe un petit coucou ainsi que Joe

    par contre @Novice72, il faudra juste faire correspondre ces codes pour un entier et pas des nombres avec décimal
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/07/2010, 19h59
  2. Inverser nombre entier de 4 chiffres
    Par zenattitude dans le forum Langage
    Réponses: 3
    Dernier message: 27/11/2005, 15h18
  3. Format des nombres entiers, séparateurs de milliers
    Par zazaraignée dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2005, 01h25
  4. nombre entier
    Par eleve36 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/10/2005, 16h25
  5. [LG]Former un nombre entier à partir de chiffre naturel.
    Par lecanardjaune dans le forum Langage
    Réponses: 2
    Dernier message: 12/11/2003, 22h36

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