Gros mystère sur EXCEL (résolu)

louma louma
149 contributions
Membre depuis le 21/02/2003
Envoyé le 24/02/2024 à 18:49


Bonjour,
Sur une feuille excel, j'ai 2 cellules à comparer, totaux de 2 colonnes qui proviennent de saisie de nombres (pas de calcul, ces nombres sont bien saisis). En mettant une formule conditionnelle toute simple pour vérifier si les 2 totaux sont égaux dans 99.99 % des cas cela fonctionne mais curieusement lors de la saisie de certains nombres les montants bien que égaux sont signalés différents !!! si je demande la différence, celle-ci est bien égale à 0 pourtant.
Incompréhensible !! Nous ne voyons aucune explication et pourtant nous ne sommes pas des débutants.
SOS.
L'idéal serait de pouvoir vous fournir le fichier afin que vous puissiez voir de vos propres yeux le souci. Je ne sais si c'est possible sur ce forum.
MERCI

Répondre à ce message

Bipbipcoyote Bipbipcoyote
4 328 contributions
Membre depuis le 06/03/2001
Envoyé le 25/02/2024 à 01:31 Modifié par Bipbipcoyote


Bonjour,
tu peux placer ton fichier sur CJoint et mettre le lien fourni vers lui dans ta question.


Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
louma louma
149 contributions
Membre depuis le 21/02/2003
Envoyé le 26/02/2024 à 11:20


Bonjour,
Merci pour votre aide.
Voici le lien :
https://www.cjoint.com/c/NBAkaot4eP4





Bipbipcoyote Bipbipcoyote
4 328 contributions
Membre depuis le 06/03/2001
Envoyé le 26/02/2024 à 16:32 Modifié par Bipbipcoyote


Bonjour,
J'ai ouvert ton fichier, il faudrait m'en dire un peu plus sur l'erreur que tu signales
Perso, j'ai regardé le montant en D39 (qui fait la somme de D5:D38) et j'obtiens le bon montant même si je place un -30 donc <50

Par contre, un conseil dans la colonne J et les autres, tu peux utiliser la formule ABS() donc par exemple ABS(D18) dans la cellule J18 te donnera la valeur positive de D18 cela évite de devoir réinscrire ces montants "en dur". Que le montant d'origine soit positif ou négatif, il sera toujours positif

Donc en bref, si je garde -71 j'obtiens 147,35 en D39
si je le remplace par -30 j'obtiens bien 188,35
D'ailleurs 147,35 + 41 = 188.35 (41 différence entre -71 et -30)
je ne vois pas d'erreur
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
louma louma
149 contributions
Membre depuis le 21/02/2003
Envoyé le 26/02/2024 à 20:35


Bonjour bipbipcoyote,
Je ne t'ai pas bien expliqué.
Les montants dans les colonnes de I à AH sont obligatoirement saisis. Ils correspondent à la ventilation des montants des colonnes D, E, F ou G.
Explication par exemple :
En D5 on saisit -100 (correspond au montant payé par chèque), en J5 on saisit 20 (montant dépense imputé au poste 1) et en L5 on saisit 80 (dépense imputée au poste 2). Une vérification est faite en colonne AL pour vérifier que la ventilation est correcte.
Problème, jusqu'à présent tout était ok mais bizarrement lorsque l'on saisit -71 en D18 et 71 en J18, en D42 le message nous signifie que les montants D40 et K41 ne sont pas égaux !!!
J'ai une solution par exemple en demandant un arrondi des 2 montants à 2 décimales mais ce qui m’intéresse c'est POURQUOI?.
Je n'aime pas ne pas comprendre [:(]
Merci de t'être penché sur mon souci.
Bonne soirée



Bipbipcoyote Bipbipcoyote
4 328 contributions
Membre depuis le 06/03/2001
Envoyé le 27/02/2024 à 04:08 Modifié par Bipbipcoyote


Bonjour,
Vu l'erreur, en fait en K41 si on définit son format à la 13e décimale on obtient un 1
par exemple 85,6500000000001 par contre on n'a pas ce 1 en D40
je ne sais pas pourquoi on obtient ce 1

Mélanger le négatifs et les positifs ça craint apparemment, (tu as un -100 en S38) pourtant c'est une simple soustraction et je n'ai pas ce 1 dans la colonne D
et en plus j'obtiens la même chose en VBA
Cela semble en rapport avec la règle mathématique où moins moins donne plus

Sub test()
Dim i, j As Integer
Dim depense, recette As Double

i = 37
j = 37
depense = 0
recette = 0
For Each cel In Range("I" & i & ":AH" & j)
x = Range(cel.Address).Column
If x Mod 2 = 0 Then
recette = recette + cel
Else
depense = depense + cel
End If
Next

MsgBox recette
MsgBox depense
MsgBox (recette - depense) + 0.0000000000001
End Sub
remarque le + sur la dernière msgbox

si on supprime le -100 en D5, le 100 en T7 et la formule en S38 inverser la formule en K41, ça fonctionne apparemment
j'ai aussi testé ce fichier (cjoint)
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
louma louma
149 contributions
Membre depuis le 21/02/2003
Envoyé le 27/02/2024 à 10:30


Bonjour,
Merci encore pour votre aide.
Nous sommes bien arrivés aux mêmes conclusions.
J'adopte la solution toute simple des arrondis désormais.




Participer à cette discussion

« Retour sur la liste des messages de ce forum