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 :

[VBA Excel] conversion d'une chaine en numérique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 183
    Par défaut [VBA Excel] conversion d'une chaine en numérique
    Bonsoir à tous,

    Me voilà confronté à un problème des plus communs. J'ai un champ dans lequel l'utilisateur doit tapper un nombre pour que celui-ci soit envoyé sur ma feuille excel.

    Ma première idée a été de tester avec isNumeric si le champs pouvait être considéré comme un nombre puis de le tranformer en nombre juste après.

    Lorsque je rentrais un nombre comme ceci : 10,4 isNumeric l'accepte mais Val me tronque les décimales et lorsque je rentre 10.4, IsNumeric me le refuse ... c'est con hein ?

    J'ai alors eu l'idée d'enlever isNumeric pour convertir directement en nombre. Alors primo Val ne reconnait pas les virgules (il transforme donc en entier tous mes flottants) et deuxio, il met 0 lorsque ce n'est pas un numérique, je suis alors obliger de demander à l'utilisateur si la valeur zéro lui convient (car je suis incapable de faire la différence entre une erreur de frappe et une volonté de l'utilisateur de mettre 0).

    Sans compter que excel lui remet la virgule et donc le problème n'en fini plus.

    En cherchant un peu j'ai trouvé une fonction CDbl mais celon les valeurs rentrées, tout plante.

    Si vous pouviez m'aiguiller ça m'arrangerais beaucoup ... vive VBA !

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu peu peu-être prendre ce probléem autrement , en controlant la saisie de l'opérateur
    comme décrit dans ce post :
    http://www.developpez.net/forums/vie...yascii&start=3


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 183
    Par défaut
    Oui ça peut effectivement être une solution, de plus elle rajoute en ergonomie. Merci beaucoup .

    EDIT : En fait, j'ai procédé autrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        If (IsNumeric(zs_nbInsectes.Value) And IsNumeric(Replace(zs_Temperature.Value, ".", ",")) And IsNumeric(Replace(zs_Humidite.Value, ".", ","))) Then
     
            Dim nbInsectes As Integer
            Dim temperature As Double
            Dim humidite As Double
     
            nbInsectes = Val(zs_nbInsectes.Value)
            temperature = Val(Replace(zs_Temperature.Value, ",", "."))
            humidite = Val(Replace(zs_Humidite.Value, ",", "."))
    L'utilisation de la fonction Replace m'a soulagé de bien des maux .

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/05/2007, 17h42
  2. [VBA][EXCEL]Conversion d'une chaine en single
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/11/2005, 17h28
  3. [string->HTML] Conversion d'une chaine en HTML
    Par salome dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 24/07/2005, 16h27
  4. Conversion d'une chaine de char en numerique
    Par simone.51 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 25/03/2004, 16h47
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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