-----Message d'origine-----
Bonjour,
Tout cela est très simple en fait, contrairement aux
apparences ;-)))
Les ordinateurs utilisent le système binaire et non le
système décimal.
Cela conduit à de très légères approximations lors de la
conversion de
nombres non entiers.
Avec des variables déclarées comme Double, le niveau de
précision est tel
que ces approximations génèrent un écart (infime, mais
non nul) lors
de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut
vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84
que
multiplie 10 puissance -14. Par conséquent le test
d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec
une précision
moindre (4 octets au lieu de 8), l'écart n'est plus
perceptible.
Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à
chaques
appui de mon boutonben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-)
et
sur une seule ligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR
(50)&CAR(48)&CAR(48)&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xlhttp://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam# a écrit dans
le message denews:Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "¡+A2" et la
ca
marche.......
Une raison particuliere ?
@+
Michel.
"Dédé" wrote in message
news:Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tuaimeraisavoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans
excel ;-)
et sur une seuleligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_repo
nses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
a écrit danslemessage de news:1fd201c3a903$58f98750
$Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont
égales
maisla boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.Ma question est peut-être très bête... et je m'en
excusesi c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
.
-----Message d'origine-----
Bonjour,
Tout cela est très simple en fait, contrairement aux
apparences ;-)))
Les ordinateurs utilisent le système binaire et non le
système décimal.
Cela conduit à de très légères approximations lors de la
conversion de
nombres non entiers.
Avec des variables déclarées comme Double, le niveau de
précision est tel
que ces approximations génèrent un écart (infime, mais
non nul) lors
de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut
vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84
que
multiplie 10 puissance -14. Par conséquent le test
d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec
une précision
moindre (4 octets au lieu de 8), l'écart n'est plus
perceptible.
Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe
-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à
chaques
appui de mon bouton
ben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-)
et
sur une seule ligne
!
=CAR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_rep
onses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam#milissa@pt.lu> a écrit dans
le message de
news:e0RnYaQqDHA.2636@tk2msftngp13.phx.gbl...
Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value Then
MsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value Then
MsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "=A1+A2" et la
ca
marche.......
Une raison particuliere ?
@+
Michel.
"Dédé" <blablabla@blablabla.com> wrote in message
news:e4LyKQQqDHA.1724@TK2MSFTNGP10.phx.gbl...
Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tu
aimerais
avoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans
excel ;-)
et sur une seule
ligne
!
=CAR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_repo
nses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
<anonymous@discussions.microsoft.com> a écrit dans
le
message de news:1fd201c3a903$58f98750
$a601280a@phx.gbl...
Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont
égales
mais
la boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.
Ma question est peut-être très bête... et je m'en
excuse
si c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
.
-----Message d'origine-----
Bonjour,
Tout cela est très simple en fait, contrairement aux
apparences ;-)))
Les ordinateurs utilisent le système binaire et non le
système décimal.
Cela conduit à de très légères approximations lors de la
conversion de
nombres non entiers.
Avec des variables déclarées comme Double, le niveau de
précision est tel
que ces approximations génèrent un écart (infime, mais
non nul) lors
de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut
vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84
que
multiplie 10 puissance -14. Par conséquent le test
d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec
une précision
moindre (4 octets au lieu de 8), l'écart n'est plus
perceptible.
Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à
chaques
appui de mon boutonben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-)
et
sur une seule ligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR
(50)&CAR(48)&CAR(48)&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xlhttp://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam# a écrit dans
le message denews:Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "¡+A2" et la
ca
marche.......
Une raison particuliere ?
@+
Michel.
"Dédé" wrote in message
news:Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tuaimeraisavoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans
excel ;-)
et sur une seuleligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_repo
nses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
a écrit danslemessage de news:1fd201c3a903$58f98750
$Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont
égales
maisla boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.Ma question est peut-être très bête... et je m'en
excusesi c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
.
Bonjour Michel,
Cela explique aussi quelques petits écarts du même ordre
que j'ai vu apparaitre dans des tableaux croisés
dynamiques ou une succession de sommes.
Donc merci beaucoup pour ces précisions.
Philippe
NB: J'ai peut-être répondu un peu tard (pause déjeuner)
Désolé.-----Message d'origine-----
Bonjour,
Tout cela est très simple en fait, contrairement aux
apparences ;-)))
Les ordinateurs utilisent le système binaire et non le
système décimal.Cela conduit à de très légères approximations lors de la
conversion denombres non entiers.
Avec des variables déclarées comme Double, le niveau de
précision est telque ces approximations génèrent un écart (infime, mais
non nul) lorsde l'addition. Il n'y a donc pas d'égalité, ce qu'on peut
vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84
quemultiplie 10 puissance -14. Par conséquent le test
d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec
une précisionmoindre (4 octets au lieu de 8), l'écart n'est plus
perceptible.Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à
chaquesappui de mon boutonben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-)
etsur une seule ligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR(50)&CAR(48)&CAR(48)&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xlhttp://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam# a écrit dans
le message denews:Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "¡+A2" et la
camarche.......
Une raison particuliere ?
@+
Michel.
"Dédé" wrote in message
news:Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tuaimeraisavoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans
excel ;-)et sur une seuleligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xlhttp://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
a écrit danslemessage de news:1fd201c3a903$58f98750
$Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont
égalesmaisla boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.Ma question est peut-être très bête... et je m'en
excusesi c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
.
Bonjour Michel,
Cela explique aussi quelques petits écarts du même ordre
que j'ai vu apparaitre dans des tableaux croisés
dynamiques ou une succession de sommes.
Donc merci beaucoup pour ces précisions.
Philippe
NB: J'ai peut-être répondu un peu tard (pause déjeuner)
Désolé.
-----Message d'origine-----
Bonjour,
Tout cela est très simple en fait, contrairement aux
apparences ;-)))
Les ordinateurs utilisent le système binaire et non le
système décimal.
Cela conduit à de très légères approximations lors de la
conversion de
nombres non entiers.
Avec des variables déclarées comme Double, le niveau de
précision est tel
que ces approximations génèrent un écart (infime, mais
non nul) lors
de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut
vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84
que
multiplie 10 puissance -14. Par conséquent le test
d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec
une précision
moindre (4 octets au lieu de 8), l'écart n'est plus
perceptible.
Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe
-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à
chaques
appui de mon bouton
ben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-)
et
sur une seule ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_rep
onses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam#milissa@pt.lu> a écrit dans
le message de
news:e0RnYaQqDHA.2636@tk2msftngp13.phx.gbl...
Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value Then
MsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value Then
MsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "¡+A2" et la
ca
marche.......
Une raison particuliere ?
@+
Michel.
"Dédé" <blablabla@blablabla.com> wrote in message
news:e4LyKQQqDHA.1724@TK2MSFTNGP10.phx.gbl...
Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tu
aimerais
avoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans
excel ;-)
et sur une seule
ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_repo
nses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
<anonymous@discussions.microsoft.com> a écrit dans
le
message de news:1fd201c3a903$58f98750
$a601280a@phx.gbl...
Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont
égales
mais
la boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.
Ma question est peut-être très bête... et je m'en
excuse
si c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
.
Bonjour Michel,
Cela explique aussi quelques petits écarts du même ordre
que j'ai vu apparaitre dans des tableaux croisés
dynamiques ou une succession de sommes.
Donc merci beaucoup pour ces précisions.
Philippe
NB: J'ai peut-être répondu un peu tard (pause déjeuner)
Désolé.-----Message d'origine-----
Bonjour,
Tout cela est très simple en fait, contrairement aux
apparences ;-)))
Les ordinateurs utilisent le système binaire et non le
système décimal.Cela conduit à de très légères approximations lors de la
conversion denombres non entiers.
Avec des variables déclarées comme Double, le niveau de
précision est telque ces approximations génèrent un écart (infime, mais
non nul) lorsde l'addition. Il n'y a donc pas d'égalité, ce qu'on peut
vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84
quemultiplie 10 puissance -14. Par conséquent le test
d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec
une précisionmoindre (4 octets au lieu de 8), l'écart n'est plus
perceptible.Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à
chaquesappui de mon boutonben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-)
etsur une seule ligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR(50)&CAR(48)&CAR(48)&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xlhttp://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam# a écrit dans
le message denews:Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "¡+A2" et la
camarche.......
Une raison particuliere ?
@+
Michel.
"Dédé" wrote in message
news:Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tuaimeraisavoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans
excel ;-)et sur une seuleligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)
&CAR(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xlhttp://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
a écrit danslemessage de news:1fd201c3a903$58f98750
$Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont
égalesmaisla boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.Ma question est peut-être très bête... et je m'en
excusesi c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
.
Merci michel pour ces précieuses informations ! ;-))
Salutations et bonne après-midi !
Dédé
--
Pour me répondre, copiez cette formule dans excel ;-) et sur une seule ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel Gaboly" a écrit dans le message de
news:Bonjour,
Tout cela est très simple en fait, contrairement aux apparences ;-)))
Les ordinateurs utilisent le système binaire et non le système décimal.
Cela conduit à de très légères approximations lors de la conversion de
nombres non entiers.
Avec des variables déclarées comme Double, le niveau de précision est tel
que ces approximations génèrent un écart (infime, mais non nul) lors
de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84 que
multiplie 10 puissance -14. Par conséquent le test d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec une précision
moindre (4 octets au lieu de 8), l'écart n'est plus perceptible.Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à chaques
appui de mon boutonben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-) et
sur une seule ligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR
(50)&CAR(48)&CAR(48)&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_rep
onses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam# a écrit dans
le message denews:Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "¡+A2" et la ca
marche.......
Une raison particuliere ?
@+
Michel.
"Dédé" wrote in message
news:Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tuaimeraisavoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans excel ;-)
et sur une seuleligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_repo
nses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xlhttp://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
a écrit danslemessage de news:1fd201c3a903$58f98750
$Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont égales
maisla boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.Ma question est peut-être très bête... et je m'en
excusesi c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
Merci michel pour ces précieuses informations ! ;-))
Salutations et bonne après-midi !
Dédé
--
Pour me répondre, copiez cette formule dans excel ;-) et sur une seule ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel Gaboly" <michel@Suppgaboly.com> a écrit dans le message de
news:3FB2222F.A019A8AC@Suppgaboly.com...
Bonjour,
Tout cela est très simple en fait, contrairement aux apparences ;-)))
Les ordinateurs utilisent le système binaire et non le système décimal.
Cela conduit à de très légères approximations lors de la conversion de
nombres non entiers.
Avec des variables déclarées comme Double, le niveau de précision est tel
que ces approximations génèrent un écart (infime, mais non nul) lors
de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84 que
multiplie 10 puissance -14. Par conséquent le test d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec une précision
moindre (4 octets au lieu de 8), l'écart n'est plus perceptible.
Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe
-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à chaques
appui de mon bouton
ben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-) et
sur une seule ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_rep
onses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam#milissa@pt.lu> a écrit dans
le message de
news:e0RnYaQqDHA.2636@tk2msftngp13.phx.gbl...
Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value Then
MsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value Then
MsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "¡+A2" et la ca
marche.......
Une raison particuliere ?
@+
Michel.
"Dédé" <blablabla@blablabla.com> wrote in message
news:e4LyKQQqDHA.1724@TK2MSFTNGP10.phx.gbl...
Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tu
aimerais
avoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans excel ;-)
et sur une seule
ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_repo
nses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
<anonymous@discussions.microsoft.com> a écrit dans
le
message de news:1fd201c3a903$58f98750
$a601280a@phx.gbl...
Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont égales
mais
la boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.
Ma question est peut-être très bête... et je m'en
excuse
si c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
Merci michel pour ces précieuses informations ! ;-))
Salutations et bonne après-midi !
Dédé
--
Pour me répondre, copiez cette formule dans excel ;-) et sur une seule ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR(111)&CAR(46)&CAR(102
)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel Gaboly" a écrit dans le message de
news:Bonjour,
Tout cela est très simple en fait, contrairement aux apparences ;-)))
Les ordinateurs utilisent le système binaire et non le système décimal.
Cela conduit à de très légères approximations lors de la conversion de
nombres non entiers.
Avec des variables déclarées comme Double, le niveau de précision est tel
que ces approximations génèrent un écart (infime, mais non nul) lors
de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84 que
multiplie 10 puissance -14. Par conséquent le test d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec une précision
moindre (4 octets au lieu de 8), l'écart n'est plus perceptible.Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe-----Message d'origine-----
ben je comprends toujours pas car ton code fonctionne
chez moi ...
En fait, j'ai collé ton code dans un bouton et à chaques
appui de mon boutonben ça me donne effectivement le bon résultat ...
--
Pour me répondre, copiez cette formule dans excel ;-) et
sur une seule ligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR
(50)&CAR(48)&CAR(48)&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_rep
onses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Michel HOLDERITH" <#nospam# a écrit dans
le message denews:Salut,
c'est quand meme bizarre.....
If (Range("A1").Value + Range("A2").Value) = Range
("F1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If (Range("A1").Value + Range("A2").Value) = Range
("G1").Value ThenMsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
en F1 tu mets la somme manuellement, ca ne marche pas
en G1 tu fais la sommes avec formule "¡+A2" et la ca
marche.......
Une raison particuliere ?
@+
Michel.
"Dédé" wrote in message
news:Salut Philippe !
J'comprends pas très bien ce que tu essaie de
faire ...
Est-ce que tu pourrais me donner des explications
pour ce que tuaimeraisavoir ?? et pourquoi est-ce que tu voudrais avoir
ceci ...???
merci de tes prochaines explications ;-))
Salutations
Dédé
--
Pour me répondre, copiez cette formule dans excel ;-)
et sur une seuleligne!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR
(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102)&CAR(114)
Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_repo
nses.htm#e1Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xlhttp://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/
Module de classe ? ici :
http://www.info-3000.com/vbvba/modulesdeclasse.php
"Philippe Bretelle"
a écrit danslemessage de news:1fd201c3a903$58f98750
$Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont égales
maisla boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste
débutant.Ma question est peut-être très bête... et je m'en
excusesi c'est le cas mais là, je ne vois pas ce qui
cloche!!!
.
--
Cordialement,
Michel Gaboly
http://www.gaboly.com
Bonjour à tous,
Je suis nouveau sur le forum.
Bonjour à tous,
Je suis nouveau sur le forum.
Bonjour à tous,
Je suis nouveau sur le forum.