[Déplacé VB6 --> VBA] L'égalité des cellules

AMEGHRAS Messages postés 3 Date d'inscription samedi 2 janvier 2010 Statut Membre Dernière intervention 6 mai 2010 - 2 mai 2010 à 18:03
AMEGHRAS Messages postés 3 Date d'inscription samedi 2 janvier 2010 Statut Membre Dernière intervention 6 mai 2010 - 6 mai 2010 à 19:32
Le contenu de la cellule A4 et le même que celui de la cellule A5 et pourtant la fonction "Si" indique que les deux cellules non pas la même valeur ?

La situation: A1=0 A2=1,52 A3=1,44 A4=0,08
A5 contient la formule =A1+A2-A3
A6 qui teste l'égalité des deux cellules A4 et A5
contient la formule =Si(A4=A5;1;2)
le problème est A6=2 tandisque A4=A5

4 réponses

rv83toulon Messages postés 68 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 25 avril 2013
3 mai 2010 à 16:17
Salut le résultat est normale puisque la valeur de A4=0,08 alors que la valeur de A5 est une formule =A1+A2-A3. Ce qui veut dire que A4= le résultat de A5 pas la valeur (la valeur de A5=A1+A2-A3).

si tu fais ce test =SI(A5=SOMME(A1+A2-A3);VRAI;FAUX) le Test renvois Vrai

@+
0
rv83toulon Messages postés 68 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 25 avril 2013
4 mai 2010 à 09:14
Bonjour,
après quelques recherche j'ai utilisé l'outils d'évaluation de formules d'excel et la formule
SI(A4A5;VRAI;FAUX) renvois en fait ceci:
SI(0,080,08000000000000001;VRAI;FAUX), résultat: FAUX, logique.

En utilisant la fonction ARRONDI on arrive au résulat souhaité, donc essaye cette formule:
SI(A4ARRONDI(A5;3);VRAI;FAUX), résultat = VRAI.
Dis si cela te convient

@+
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
4 mai 2010 à 10:02
Si je ne dis pas trop de bêtise (ce qui est tout à fait possible), c'est un pb inhérent à EXCEl, dans sa façon de gérer les virgules flottantes (normes je ne sais plus, j'ai la flemme de chercher) et le fait qu'EXCEL en fait, ne gère que 15 décimales malgré que tu puisses en afficher plus.

Format 30 décimales sur tes cellules donne :
A1:0,000000000000000000000000000000
A2:1,520000000000000000000000000000
A3:1,440000000000000000000000000000
A4:0,080000000000000000000000000000
A5:0,080000000000000100000000000000

http://office.microsoft.com/fr-fr/excel/HP051983221036.aspx?pid=CH010004931036


L'arrondi peut être une solution, mais ça ne fonctionne pas tout le temps.

Une autre option est de tenter de modifier une option dans Excel :
Outils\Options\calcul avec la précision affichée.

Mais pour moi, ça n'a jamais fonctionné ^^

Molenn
0
AMEGHRAS Messages postés 3 Date d'inscription samedi 2 janvier 2010 Statut Membre Dernière intervention 6 mai 2010
6 mai 2010 à 19:32
je remercie bien mes deux amis qui ont donné des idées sur la résolution de mon problème. En inspirant à la 2ème réponse (pour rv83toulon), j'ai essayé cette formule A6=SI(ET(A5>=-0,00001;A5<=0,00001);1;2): "tendance à zéro"
et je vois bien qu'il marche pour mon programme
0
Rejoignez-nous