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 :

Calcul erroné de Excel [XL-2003]


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
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut Calcul erroné de Excel
    Bonjour,

    J'ai le code suivant dans mon module VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Dim Resultat1, Resultat2, Result As Double
     Resultat1 = CDbl(Worksheets(resultat).Cells(RowResultat, 12))
     Resultat2 = CDbl(Worksheets(resultat).Cells(RowResultat, 13))
     Result = Resultat1 - Resultat2
    L'inspecteur de variable me renvoue
    Watch : : Worksheets(resultat).Cells(RowResultat, 12).Value : 54859278,45 : Variant/Double : Module1.VerifS2
    Watch : : Worksheets(resultat).Cells(RowResultat, 13).Value : 54859278,45 : Variant/Double : Module1.VerifS2
    Watch : : Result : 7,45058059692383E-09 : Double : Module1.VerifS2

    C'est quoi ce délire? Pourquoi Excel me trouve-t-il un écart entre Resultat1 et Resultat2 alors que les deux variables ont rigoureusement la même valeur?

    Merci par avance pour votre aide !

  2. #2
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut calcul erroné de Excel
    bonjour,

    il n'y a pas de délire.
    la syntaxe de ta déclaration variables est erronée.
    il est impératif d'écrire :
    dim Resultat1 as double
    dim Resultat2 as double
    dim Result As Double

    sinon les deux premières déclaration sont effectivement considérée variant par Excel.

    cordialement.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    selon comment a été calculé chaque cellule tu peux aussi avoir des erreurs d'arrondi dues aux conversions décimal<->binaire.
    C'est normal, 1.01 par exemple ne tombera pas pile en binaire, si tu l'additionnes plusieurs fois ça fini par se voir (essaie une boucle avec type Single pour que l'erreur arrive plus vite et tu verras).
    Arrondir les résultats est la solution
    eric

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut
    merci pour vos réponses

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/11/2007, 07h03
  2. Calcul erroné !
    Par loverdev dans le forum VB.NET
    Réponses: 20
    Dernier message: 26/06/2007, 11h02
  3. calcul d'heure [excel]
    Par lumbroso dans le forum Excel
    Réponses: 24
    Dernier message: 18/06/2007, 15h50
  4. [Formule] Calcul Heures AVEC EXCEL
    Par JLDEB dans le forum Excel
    Réponses: 2
    Dernier message: 16/04/2007, 17h08
  5. Aide sur le calcul matricielle avec Excel
    Par tpcforever dans le forum Excel
    Réponses: 1
    Dernier message: 22/03/2007, 21h33

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