OVH Cloud OVH Cloud

[VBA] petit soucis dans une comparaison de sommes

2 réponses
Avatar
Microsoft VBA Excel
Bonjour à tous,

voici l'énoncé de mon soucis :

j'ai 3 colonnes :

col n°1 | coln°2 | col n° 3
200,20 ? | 100,00 ? | 50,00 ?
100,30 ? | 301,00 ? | 50,50 ?

En VB, je calcule les totaux. J'obtiens :

col n°1 | coln°2 | col n° 3
200,20 ? | 100,00 ? | 50,00 ?
100,30 ? | 301,00 ? | 50,50 ?
----------------------------------
300,50 ? | 401,00 ? | 100,50 ?

Ensuite, toujours en VB, je compare col 1 à (col2 - col3). Je veux passer la
ligne des totaux en rouge si l'égalité n'est pas vérifiée.

>IF "la somme de col1" <> "la somme de col2" - "la somme de col3" then
tu mets la ligne en rouge 'c'est qu'il n'y a pas égalité
else
tu mets la ligne en noir
end if

Et pourtant, après vérification avec debug.print et tout, Excel ne semble
pas trouver l'égalité et passe la ligne en rouge, alors qu'il y a bien
égalité !

Est-ce que ça peut être dû à une histoire de virgules ? Si oui, est-ce que
quelqu'un peut me donner un coup de main ?

Merci d'avance !!

2 réponses

Avatar
Pierre Fauconnier
Salut

Affiche plus de décimales pour vérifier qu'il n'y a pas de résidus au delà
de la deuxième décimale. Tu pourrais utiliser la fonction arrondi(...) en
excel ou round(...) en vba pour supprimer les résidus posant problème

Ok?

--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Microsoft VBA Excel" a écrit dans le message de news:
%
Bonjour à tous,

voici l'énoncé de mon soucis :

j'ai 3 colonnes :

col n°1 | coln°2 | col n° 3
200,20 ? | 100,00 ? | 50,00 ?
100,30 ? | 301,00 ? | 50,50 ?

En VB, je calcule les totaux. J'obtiens :

col n°1 | coln°2 | col n° 3
200,20 ? | 100,00 ? | 50,00 ?
100,30 ? | 301,00 ? | 50,50 ?
----------------------------------
300,50 ? | 401,00 ? | 100,50 ?

Ensuite, toujours en VB, je compare col 1 à (col2 - col3). Je veux passer
la ligne des totaux en rouge si l'égalité n'est pas vérifiée.

IF "la somme de col1" <> "la somme de col2" - "la somme de col3" then
tu mets la ligne en rouge 'c'est qu'il n'y a pas égalité

else
tu mets la ligne en noir
end if

Et pourtant, après vérification avec debug.print et tout, Excel ne semble
pas trouver l'égalité et passe la ligne en rouge, alors qu'il y a bien
égalité !

Est-ce que ça peut être dû à une histoire de virgules ? Si oui, est-ce que
quelqu'un peut me donner un coup de main ?

Merci d'avance !!








Avatar
FxM
Bonsoir,

Si la solution de Pierre ne fonctionnait pas, remplace :
if col1 <> col2 - col3 then
par
if col1 <> (col2 - col3) then

@+
FxM



Bonjour à tous,

voici l'énoncé de mon soucis :

j'ai 3 colonnes :

col n°1 | coln°2 | col n° 3
200,20 ? | 100,00 ? | 50,00 ?
100,30 ? | 301,00 ? | 50,50 ?

En VB, je calcule les totaux. J'obtiens :

col n°1 | coln°2 | col n° 3
200,20 ? | 100,00 ? | 50,00 ?
100,30 ? | 301,00 ? | 50,50 ?
----------------------------------
300,50 ? | 401,00 ? | 100,50 ?

Ensuite, toujours en VB, je compare col 1 à (col2 - col3). Je veux passer la
ligne des totaux en rouge si l'égalité n'est pas vérifiée.

IF "la somme de col1" <> "la somme de col2" - "la somme de col3" then
tu mets la ligne en rouge 'c'est qu'il n'y a pas égalité

else
tu mets la ligne en noir
end if

Et pourtant, après vérification avec debug.print et tout, Excel ne semble
pas trouver l'égalité et passe la ligne en rouge, alors qu'il y a bien
égalité !

Est-ce que ça peut être dû à une histoire de virgules ? Si oui, est-ce que
quelqu'un peut me donner un coup de main ?

Merci d'avance !!