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 :

Soustraction : Excel ou VBA même combat


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut Soustraction : Excel ou VBA même combat
    J'ai ce test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        If FL1.Range("A" & Derlig1 - 1).Value <= (FL1.Range("D3").Value - 0.01) Then _
            FL1.Range("H3").Value = True
    Or, la condition n'est pas remplie alors que les valeurs sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FL1.Range("A" & Derlig1 - 1).Value  = -0,0007596860
    FL1.Range("D3").Value = 0,005267156
    A la main, si je fais la soustraction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0,005267156 - 0,01 j'obtiens -0,004732844
    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = -0,0007596860 <  (0,005267156 - 0,01) => FAUX (?)
    J'ai fini de m'arracher les cheveux et j'attaque les sourcils...
    Alors merci à celui qui a une explication, mieux, une solution.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonsoir, ousk ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -0,0007596860 <  0,015267156 => VRAI (!)
    et bien sur, que c'est bien vrai !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -0,0007596860 <  (0,005267156 - 0,01) => FAUX (?)
    et bien évidemment, que c'est faux !!!

    que veux-tu donc corriger à celà ?

  3. #3
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonsoir,

    • Quelle version d’Excel utilises-tu ?
    • Es-tu sûr que pendant certaines phases du traitement, tu n’es pas en calcul manuel ?


    Citation Envoyé par ouskel'n'or Voir le message
    A la main, si je fais la soustraction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0,005267156 - 0,01 j'obtiens -0,004732844
    Dans Excel
    =0,005267156 - 0,01 donne => 0,015267156
    Pas réussi à reproduire cela, ni avec Excel 2004 (Mac) ni avec Excel 2007. Dans les 2 cas, j’obtiens bien -0,004732844

    Citation Envoyé par ouskel'n'or Voir le message
    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = -0,0007596860 <  0,015267156 => VRAI (!)
    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = -0,0007596860 <  (0,005267156 - 0,01) => FAUX (?)
    J'ai fini de m'arracher les cheveux et j'attaque les sourcils...
    Alors merci à celui qui a une explication, mieux, une solution.
    Que la première comparaison donne VRAI paraît normal : une valeur négative est toujours < à une valeur positive.

    Quant à la seconde, à partir du moment où 0,005267156 - 0,01 = -0,004732844, ce que j’obtiens avec les 2 versions d’Excel citées, le résultat est également correct :

    On compare cette fois 2 valeurs négatives, -0,0007596860 et -0,004732844.

    La plus grande en valeur absolue est -0,004732844, elle est donc plus éloignée de 0, et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0,0007596860 < -0,004732844 = FAUX
    est parfaitement normal.

    La seule bizarrerie dans ce que tu énonces est le résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =0,005267156 - 0,01 donne => 0,015267156 :fou:
    que je n’arrive pas à reproduire. Comment y aboutis-tu ?

    Dans une cellule ?
    Dans la barre de formule avec F9 (ou Cmd + = sur Mac) ?
    Dans la fenêtre d'’exécution de VBA ?
    Avec un point d’arrêt et la combinaison Maj + F9 ?
    ... ?

    Cordialement,

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Autant pour moi? Dans Excel j'avais Un nombre dans une cellule et -0,01 dans l'autre. Je faisais donc --0,01
    Je regarde dans VBA si je n'ai pas une inversion de signe quelque part. En fait j'ai 0.01 dans une variable.
    Merci a vous. Je vais me mettre devans la tv

Discussions similaires

  1. [VBA] : Copier feuille Excel dans le même classeur (erreur 9 ou 1004)
    Par Jordmund dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/03/2015, 15h09
  2. [Partenaire] Cherche développeur Freelance Excel, Access VBA (même offshore)
    Par Pythonesque dans le forum Autres
    Réponses: 0
    Dernier message: 05/05/2014, 15h53
  3. Réponses: 2
    Dernier message: 03/06/2005, 10h19
  4. Création liste dans cellules Excel en VBA
    Par yazoo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2005, 14h46
  5. Comment décaller un bloc de cellule Excel en VBA
    Par bbkenny dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/01/2005, 20h00

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