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 :

Obliger à saisir un nombre dans inputbox [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 274
    Par défaut Obliger à saisir un nombre dans inputbox
    Bonjour,

    j'ai une InputBox dans laquelle je ne veux accepter qu'une valeur numérique

    j'ai incompatibilité de type sur la 1ere ligne (Inputbox) si on saisi une lettre ou un espace par exemple (normal j'ai "mt as double")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mt = InputBox("Montant ?")
                        If IsNumeric(mt) Then
    du coup "Isnumeric" ne sert à rien

    J'ai vu des solutions complexes pour ce problème. Il y a peut être une solution très simple ?

    merci

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Utilises : Application.InputBox avec le type:=1
    https://docs.microsoft.com/fr-fr/off...ation.inputbox

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 274
    Par défaut
    Merci

    je ne connaissais pas cette option

    Cela alerte effectivement pour une saisie non numérique avec le type 1

    Cependant si on tape un espace ou suppr dans la réponse il me sort un message d'erreur (pièce jointe)
    Images attachées Images attachées  

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Ben oui, il te sors un message d'erreur.
    Un espace n'est pas un chiffre.
    Sur le message d'erreur, quand tu cliques sur ok, il te renvoie dans l'InputBox pour corriger.
    C'est très exactement ce que tu souhaites...

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonjour …

    à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub e()
       Dim mt
       Do
          mt=InputBox("(nombre attendu !)", "Montant ...")
       Loop Until IsNumeric(mt)
    End Sub
    Attention, le numérique, ici, est avec le séparateur décimal choisi (point ou virgule). Pour quitter, valider (OK) la saisie d'au moins un des 10 chiffres (tout dépend de l'usage qui sera fait pour mt).

    Cela peut se faire aussi, avec un contrôle TextBox. Mais c’est une autre histoire …

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par OrDonc Voir le message
    [...]Pour quitter, valider (OK) la saisie d'au moins un des 10 chiffres (tout dépend de l'usage qui sera fait pour mt).[...]
    Et donc, pour quitter sans entrer une valeur numérique, on doit... saisir une valeur numérique... Ca va être costaud pour tester qu'une valeur numérique n'est pas la bonne...

    Mama Mia... Quel désastre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      Dim Result
     
      Do
        Result = InputBox("Saisissez une valeur numérique. Pour quitter la saisie, laissez la zone vide", "Saisie numérique")
      Loop While Result <> "" And Not IsNumeric(Result)
      If Result <> "" Then
        MsgBox "Vous avez saisi une valeur numérique"
      Else
        MsgBox "Vous avez abandonnés la saisie"
      End If

    La solution de Pijaku est éventuellement intéressante, mais c'est une solution "Excel" car elle utilise en fait le InputBox d'Excel et n'est pas transposable en Word, PowerPoint... A part pour la saisie d'une plage par pointage (type:=8), je ne vois pas l'intérêt de passer par le modèle objet Excel...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/01/2024, 15h32
  2. Critère a saisir dans Inputbox
    Par Samute05 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/12/2013, 20h24
  3. Saisir un nombre dans le champ d'un formulaire
    Par victor-mathilde dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/09/2010, 20h41
  4. DOM : saisir le nombre de résultats dans google scholar
    Par thibaud74 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/07/2010, 16h26
  5. saisir un nombre maximal dans un JSpinner
    Par coquero dans le forum AWT/Swing
    Réponses: 25
    Dernier message: 27/05/2008, 19h45

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