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 :

Probleme avec les nombres dans Input Box [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Par défaut Probleme avec les nombres dans Input Box
    Bonjour à tous,

    Je suis sur la création d'un utilitaire pour mon entreprise.

    Je suis face à un problème que je n'arrive pas à résoudre.

    Il s'agit de créer une bibliothèque de gaz.
    Voici le principe: L'utilisateur clique sur un bouton de contrôle classique et doit ensuite rentrer un certains nombre d'informations sur le gaz pour l'ajouter à la bibliothèque.
    Voici mon problème: lors de la rentré d'un nombre dans l'InputBox, si ce nombre contient plus de 2 chiffres après la virgules, l'écriture dans une cellule de la variable qui contient l'information se transforme en texte. (ex: 1,0025 devient 10025).
    Je ne peux déclarer ma variable en tant que nombre car je test si l'utilisateur rentre un nombre.
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    sub test ()
    Do
    MasseMolaire = InputBox("Masse molaire du gaz en gramme par mol [g/mol] :", "Masse molaire", ".,...")
     
    If IsNumeric(MasseMolaire) = False And MasseMolaire <> "" Or MasseMolaire < 0 Then
        If MasseMolaire < 0 Then
        MsgBox "La valeur ne peut être inférieur 0", vbOKOnly, "Valeur nul"
        End If
     
        If IsNumeric(MasseMolaire) = False And MasseMolaire <> "" Then
        MsgBox "Erreur: Le champs que vous avez saisi n'est pas un nombre." & Chr(10) & " ( vérifier que le séparateur décimale est une , et non un . )", vbOKOnly, "Erreur"
        End If
    Else
        If MasseMolaire = "" Then
        Exit Sub
        End If
    Exit Do
     
    End If
    Loop
     
    Cells(1,1)=MasseMolaire
     
    end sub
    La, je bloque depuis deux jours dessus. Quelqu'un serait comment y remédier? Il est possible de revoir tout le code.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim MasseMolaire  as double
    MasseMolaire = Val(Replace(InputBox("Masse molaire du gaz en gramme par mol [g/mol] :", "Masse molaire", ".,..."), ",", "."))
    if  MasseMolaire < 0 Then

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Par défaut
    Je vais partir sur cette piste.

    J'aimerais quand même que l'utilisateur soit au courant si il rentre du texte dans l'input box.

    Merci quand même je vais essayé de voir ce que je peux faire avec.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Par défaut
    Okay, c'est bon. J'ai trouvé!!!!
    Merci pour la fonction replace et Val. Ça m'as beaucoup aidé.
    En plus, l'utilisateur peut soit rentrée un point soit une virgule.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub test()
     
     
    Do
    MasseMolaire = Replace(InputBox("Masse molaire du gaz en gramme par mol [g/mol] :", "Masse molaire", ".,..."), ".", ",")
     
    If IsNumeric(MasseMolaire) = False And MasseMolaire <> "" Or MasseMolaire < 0 Then
        If MasseMolaire < 0 Then
        MsgBox "La valeur ne peut être inférieur 0", vbOKOnly, "Valeur nul"
        End If
     
        If IsNumeric(MasseMolaire) = False And MasseMolaire <> "" Then
        MsgBox "Erreur: Le champs que vous avez saisi n'est pas un nombre.", vbOKOnly, "Erreur"
        End If
    Else
        If MasseMolaire = "" Then
        Exit Sub
        End If
    Exit Do
     
    End If
    Loop
     
     
    MasseMolaire = Replace(MasseMolaire, ",", ".")
    Cells(1, 1) = Val(MasseMolaire)
     
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim MasseMolaire As Variant
    MasseMolaire = Replace(InputBox("Masse molaire du gaz en gramme par mol [g/mol] :", "Masse molaire", ".,..."), ",", ".")
    If IsNumeric(Replace(MasseMolaire, ".", ",")) = False Then MsgBox "err"

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

Discussions similaires

  1. [XSLT] probleme avec les doublons dans une liste deroulante
    Par mikooo dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/04/2007, 15h37
  2. Probleme avec les regles dans OUTLOOK 2007
    Par JUSTIN Loïc dans le forum Outlook
    Réponses: 2
    Dernier message: 13/09/2006, 19h30
  3. Probleme avec les JPanel dans les JSplitPane
    Par L4BiN dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 16/08/2006, 14h29
  4. [MySQL] Probleme avec les nombres flottants
    Par Seth77 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/07/2006, 10h20
  5. [langage] probleme avec les listes dans des listes
    Par pqmoltonel dans le forum Langage
    Réponses: 7
    Dernier message: 27/04/2004, 12h32

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