OVH Cloud OVH Cloud

Comparaison dans VBA de variables "Double"

14 réponses
Avatar
Philippe Bretelle
Bonjour =E0 tous,

Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont =E9gales mais
la boite de dialogue ne s'affiche pas.
Mon code est le suivant:

Dim somme As Double
somme =3D 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 =3D Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme =3D but Then
MsgBox ("=E9gal")
End If

Merci par avance.
PS: J'ai quelques notions de VBA mais je reste d=E9butant.=20
Ma question est peut-=EAtre tr=E8s b=EAte... et je m'en excuse=20
si c'est le cas mais l=E0, je ne vois pas ce qui cloche!!!

10 réponses

1 2
Avatar
Dédé
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_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

"Philippe Bretelle" a écrit dans le
message 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 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!!!
Avatar
Michel HOLDERITH
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é" 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 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_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

"Philippe Bretelle" a écrit dans le
message 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 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!!!




Avatar
Pierre Dumas
Declare tout simplement tes variables en single et non en
double.

dim somme as single
...
dim but as single
...

Pierre

-----Message d'origine-----
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!!!
.



Avatar
Michel HOLDERITH
Salut,
mais.........
si tu ne veux pas par exemple ne pas passer par des variables , mais par des
ranges :
Sub essai()
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
End Sub
ca ne marche pas......
Existe-t-il une explication logique.........
@+
Michel.

"Pierre Dumas" wrote in message
news:0f1701c3a907$f5b215e0$
Declare tout simplement tes variables en single et non en
double.

dim somme as single
...
dim but as single
...

Pierre

-----Message d'origine-----
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!!!
.



Avatar
Effectivement, avec single ça à l'air de fonctionner.
L'empèche que j'arrive pas à voir pourquoi en double ça
bug!
Mais l'essentiel c'est que ça fonctionne
Merci pour le coup de main.

Philippe

-----Message d'origine-----
Declare tout simplement tes variables en single et non en
double.

dim somme as single
....
dim but as single
....

Pierre

-----Message d'origine-----
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!!!
.

.





Avatar
Dédé
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_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 HOLDERITH" <#nospam# a écrit dans le message de
news:
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é" 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 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_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

"Philippe Bretelle" a écrit dans
le


message 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 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!!!








Avatar
Dédé
oupsss. parti tout seul sans demander son reste ...

Donc, voici le code que j'ai un peu simplifié ...
Private Sub CommandButton2_Click()
If [A1] + [A2] = [F1] Then
MsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
If [A1] + [A2] = [G1] Then
MsgBox ("égal")
Else
MsgBox "PAS EGAL"
End If
End Sub

Chez moi, y a pas de problème ...

Peut-être serait-ce un problème de format de cellule ...

Autrement ben pas trop d'idées ..

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_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

"Dédé" a écrit dans le message de
news:
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_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 HOLDERITH" <#nospam# a écrit dans le message de
news:
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é" 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 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_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

"Philippe Bretelle" a écrit dans
le


message 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 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!!!












Avatar
Philippe Bretelle
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# a écrit dans
le message de

news:
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é" 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 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"
a écrit dans



le
message 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
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!!!











.





Avatar
Dédé
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 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# a écrit dans
le message de

news:
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é" 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 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"
a écrit dans



le
message 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
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








Avatar
Michel Gaboly
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# a écrit dans
le message de

news:
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é" 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 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"
a écrit dans



le
message 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
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




1 2