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 :

Erreur de calcul


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Erreur de calcul
    Bonjour,

    N'ayant pas trouvé de solutions dans le forum j'écris ce message.

    J'ai écris une table entre B2 et B4 avec trois valeurs (valeurs qui ne sont pas le résultat d'un autre calcul, donc exact) :
    58,105
    22,640
    35,465

    puis une macro qui est chargé de faire une soustraction simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub calcul()
    x = 58.105 - 22.64 - 35.465
    MsgBox (x)
    MsgBox (Range("B2").Value - Range("B3").Value - Range("B4").Value)
    End Sub
    Le problème est que la macro ne donne pas zero (pour ces deux affichages) comme résultat mais 7.10E-15.
    D'ou ca vient? (de moi sûrement?)

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 181
    Points : 377
    Points
    377
    Par défaut A comparer
    Bonsoir à tous,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub calcul()
    Dim x As Single, b2 As Single, b3 As Single, b4 As Single
    b2 = Sheets("Feuil1").Range("B2")
    b3 = Sheets("Feuil1").Range("B3")
    b4 = Sheets("Feuil1").Range("B4")
    x = b2 - b3 - b4
    MsgBox (x)
    MsgBox (Range("B2").Value - Range("B3").Value - Range("B4").Value)
    End Sub

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Je te remercie pour cette réponse. Si je comprends bien il faut definir les variables comme "single".
    J'ai en fait simplifié mon problème et la macro...

    J'utilise en fait un tableau interne tableau(1 to 10, 1 to 200) définit comme variant,
    car la première ligne comporte les titres, la première colonne des dates et le reste sont des nombres.

    Y a t il moyen alors de définir le tableau comme single seulement pour le tableau (2 to 10, 2 to 200) et le reste en variant?

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 138
    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 138
    Points : 9 972
    Points
    9 972
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    sans typer le tableau, mais en utilisant plutôt les fonctions de conversion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub toto()
     
    Dim C(1 To 4)
     
    C(1) = 58.105
    C(2) = 22.64
    C(3) = 35.465
    C(4) = "Le compte est bon"
     
    MsgBox CSng(C(1)) - CSng(C(2)) - CSng(C(3)) & " : " & C(4)
     
    End Sub

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Merci à vous deux :-)

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

Discussions similaires

  1. [2.0] Erreur de calcul numérique de .net o_O
    Par Smeuuh dans le forum Framework .NET
    Réponses: 8
    Dernier message: 11/11/2006, 17h04
  2. [Tableaux] erreur de calcul
    Par dleu dans le forum Langage
    Réponses: 18
    Dernier message: 08/12/2005, 13h28
  3. erreur sur calcul
    Par Sendo dans le forum Access
    Réponses: 2
    Dernier message: 29/09/2005, 09h46
  4. Rotation erreur de calcul
    Par Speed41 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 09/03/2005, 16h55
  5. C++Builder fait une erreur de calcul
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/01/2004, 22h27

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