Datedif()

Le
michdenis
Bonjour à tous,

Une petite facile en ce samedi matin.

La fonction DateDif() de la feuille de calcul peut être utilisée
avec la propriété "Evaluate" en vba.

Dans la procédure soumise à votre attention,
Jrs = 132

En fait, si dans une feuille de calcul j'ai 2 cellules
A1 = 08/01/2080 A2 /12/2075
si je fais ¡-A2 = 1480
= mod(1480/365) = 20

Comment expliquer que Datedif() retourne 132 au lieu de 20 ?
Il y sûrement quelque chose que je ne vois pas ce matin ?
J'y vais pour un second café en attendant vos explications !
;-)
'
Sub test()
Dim P As Long, G As Long
P = CLng(CDate("20/12/2075"))
G = CLng(CDate("08/01/2080"))

Jrs = Evaluate("DateDif(" & P & "," & G & ",""yd"")")
End Sub
'

Merci de votre collaboration.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #22120031
Bonjour.
Datedif me retourne 19 avec ou sans VBA.
Daniel

Bonjour à tous,

Une petite facile en ce samedi matin....

La fonction DateDif() de la feuille de calcul peut être utilisée
avec la propriété "Evaluate" en vba.

Dans la procédure soumise à votre attention,
Jrs = 132

En fait, si dans une feuille de calcul j'ai 2 cellules
A1 = 08/01/2080 A2 /12/2075
si je fais ¡-A2 = 1480
= mod(1480/365) = 20

Comment expliquer que Datedif() retourne 132 au lieu de 20 ?
Il y sûrement quelque chose que je ne vois pas ce matin ?
J'y vais pour un second café... en attendant vos explications !
;-)
'---------------------------------------
Sub test()
Dim P As Long, G As Long
P = CLng(CDate("20/12/2075"))
G = CLng(CDate("08/01/2080"))

Jrs = Evaluate("DateDif(" & P & "," & G & ",""yd"")")
End Sub
'---------------------------------------

Merci de votre collaboration.
michdenis
Le #22120121
Ce message est composé et au format MIME.

------=_NextPart_000_0027_01CAF3FE.EFD46F80
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0028_01CAF3FE.EFD46F80"


------=_NextPart_001_0028_01CAF3FE.EFD46F80
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Merci à vous deux.

J'ai mis la petite procédure dans un tout nouveau classeur.
Elle retourne toujours 132.

J'ai testé avec d'autres valeurs et le résultat est exact...

Quelqu'un a une explication ?

Est-ce que mon processeur fait de l'alzheimer ?
Celui de l'ordi bien attendu ! ))




"Jacky" Bonjour Denis

Ecrite comme telle, chez moi, la macro me retourne
Jrs = 19


--
Salutations
JJ


"michdenis" Bonjour à tous,

Une petite facile en ce samedi matin....

La fonction DateDif() de la feuille de calcul peut être utilisée
avec la propriété "Evaluate" en vba.

Dans la procédure soumise à votre attention,
Jrs = 132

En fait, si dans une feuille de calcul j'ai 2 cellules
A1 = 08/01/2080 A2 /12/2075
si je fais ¡-A2 = 1480
= mod(1480/365) = 20

Comment expliquer que Datedif() retourne 132 au lieu de 20 ?
Il y sûrement quelque chose que je ne vois pas ce matin ?
J'y vais pour un second café... en attendant vos explications !
;-)
'---------------------------------------
Sub test()
Dim P As Long, G As Long
P = CLng(CDate("20/12/2075"))
G = CLng(CDate("08/01/2080"))

Jrs = Evaluate("DateDif(" & P & "," & G & ",""yd"")")
End Sub
'---------------------------------------

Merci de votre collaboration.



------=_NextPart_001_0028_01CAF3FE.EFD46F80
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD>
<META content=text/html;charset=iso-8859-1 http-equiv=Content-Type>
<STYLE></STYLE>
</HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px"
id=MailContainerBody leftMargin=0 topMargin=0 bgColor=#fffbf0
CanvasTabStop="true" name="Compose message area">
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Quelqu'un a une explication ?</DIV>
<DIV>&nbsp;</DIV>
<DIV>Est-ce que mon processeur fait de l'alzheimer ?</DIV>
<DIV>Celui de l'ordi bien attendu !&nbsp; <IMG
style="POSITION: static; MARGIN: 0px; FLOAT: none"
title="Clignement d'œil émoticône" tabIndex=-1 alt="Clignement d'œil émoticône"
src="cid:"
MSNNonUserImageOrEmoticon="true">))</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px"
dir=ltr>
<DIV>"Jacky" &lt;<A
title="mailto:&#10;CTRL + Cliquez ici pour suivre le lien"
href="mailto:"></A>&gt; a écrit dans le
message de groupe de discussion : <A
href="mailto:"> 2MSFTNGP02.phx.gbl <DIV><FONT size=2>Bonjour Denis</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>Ecrite comme telle, chez moi, la macro me retourne
</FONT></DIV>
<DIV><FONT size=2>Jrs = 19</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><BR>-- <BR>Salutations<BR>JJ<BR>&nbsp;<BR></DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
<DIV>"michdenis" &lt;<A
href="mailto:"></A>&gt; a écrit
dans le message de news: <A
href="mailto:">443D5F à&nbsp; tous, fonction DateDif() de la feuille de calcul peut être utilisée<BR>avec la
propriété "Evaluate" en vba.<BR><BR>Dans la procédure soumise à votre
attention,<BR>Jrs = 132<BR><BR>En fait, si dans une feuille de calcul j'ai 2
cellules<BR>A1 =&nbsp; 08/01/2080&nbsp;&nbsp;&nbsp; A2&nbsp;
/12/2075<BR>si je fais&nbsp; ¡-A2 =
1480<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;
= mod(1480/365) = 20<BR><BR>Comment expliquer que Datedif() retourne 132 au
lieu de 20 ?<BR>Il y sûrement quelque chose que je ne vois pas ce matin
?<BR>J'y vais pour un second café... en attendant vos explications
!<BR>;-)<BR>'---------------------------------------<BR>Sub test()<BR>Dim P
As Long, G As Long<BR>P = CLng(CDate("20/12/2075"))<BR>G =
CLng(CDate("08/01/2080"))<BR><BR>Jrs = Evaluate("DateDif(" &amp; P &amp; ","
&amp; G &amp; ",""yd"")")<BR>End
Sub<BR>'---------------------------------------<BR><BR>Merci de votre
collaboration.<BR><BR>&nbsp;<BR></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_0028_01CAF3FE.EFD46F80--

------=_NextPart_000_0027_01CAF3FE.EFD46F80
Content-Type: image/gif;
name="Emoticon3.gif"
Content-Transfer-Encoding: base64
Content-ID:

R0lGODlhEwATAOZ/AOS6S+zEWdOzO/zmSvTPOe67KPbPN/nVO/LVhf/jR9ytK/zpTvv16PPbnuGs
J9u8SvLEMO7CM/7eQtyjNf3yVtnElcmhLdSlKOq0JP3wV9CgKP/kSLGSSfzvVvnaQrKUUPviR+nT
pP7tU/3zV8y6k8GpbsqyeqSBLZ8/H/3kSfvoTdeXJfjYPaiOhvzcQPHBLemzIruQKP/iRfbTPf/h
Q/XIM9imJvrZPrWLKO24J/znTP3sUua1OaN/KdykLuO4Mf3tUdaZL/7mSv3vU+e2L9iZJvDKVfze
QvPNObqaUtmfNPC+K+SwJvvmTfnZP+a1Kc2JJ/vbQVonFOmyJP7sUOGzLffRN/bPOK1WIruiaOvP
R8Ksed26bPvuVv3rUOGsM/70WPvjS86oTNCqTXVLPX5WSv3wVMN5JvvnS+G1L9aoLP7hRaFDIPfn
wvfXP+y3JvvbP+DUt7KPZ9m7c+vMe7JfJP7lS5t8cPvcQvXMNvz69uDHiVMeDZl4J////////yH/
C05FVFNDQVBFMi4wAwEAAAAh+QQJZAB/ACwAAAAAEwATAAAH/4B/goN/DQFEAQ2Ei4IMRnyQKjIz
EQCQfIwEfBlmQ3wLAwlkPyF/mIMzI2AUFENAoAkSN2mlg0gZGSMUfX07sBK8agyCRikdXSN9fn59
CwspysxjggQiHR3JLXzNCyB92n0ahR5A1tnbOjre4AoVAQkLVF4D0X0pICz1TElEKWgqKprQs4eP
hRteBTCcCBAlgZABOgak2BArCosrNZbkcPChAQEaCRJsGDCAhgQ4LKzUeJFQA4k/EVxIcDEShZIB
Lpwc+FKgAIwYggAgYXHjyBElNnkoDYKigA0Og6rkMUDVAFMUWFFAKYJjkQIIEF5A8OGjyIqzK2Aw
+nPhSc8cbxww+LTRde0fMRpsMJniQEMMqHYHVUhy4sNLRoEAACH5BAkyAH8ALAAAAAATABMAAAf/
gH+Cg4IIAQhthIqDcnx8DyprMxE/UneLfwQ6Dw+PC0IyUj9cUoozFCMUFJ0LAwkboxWESBlgI2AU
HTutCQl9fR96hXa1thQiuwMyfX5+fXuCSCIdFAI9PVphKinLzX0agh5A0x1NWtcDGzR9ZWV9CnEI
MgtUO/a72zISPY59TCYBUuhQsaCgCh3cJLg4YMFCAQwfEOBJkGKAjgFCEuiLwuIKhCU5HGxpQ4CG
jF5sEqyRwNFKjRcPNcT5EyGKhJsoJrhwcsDAy4cYYgiig4TFjRsTUASxkgcCzDcYbJQYVCWPAStX
JmCpAyVIgRUoMOBQpACCWQg+zmBhgwLFGaGLIi48KVAgB1QMMGyMxfRnjgYbTKY40BBjKt9BWUx8
2JIFUyAAIfkEBQoAfwAsAAAAABMAEwAAB/+Af4KDfw0BRAENhIuCDEZ8kCoyMxEAkHyMBHwZZkN8
CwMJZD8hf5iDMyNgFBRDQKAJEjdppYNIGRkjFH19O7ASvGoMgkYpHV0jfX5+fQsLKcrMY4IEIh0d
yS18zQsgfdp9GoUeQNbZ2zo63uAKFQEJC1ReA9F9KSAs9UxJRCloKiqa0LOHj4UbXgUwnAgQJYGQ
AToGpNgQKwqLKzWW5HDwoQEBGgkSbBgwgIYEOCys1HiRUAOJPxFcSHAxEoWSAS6cHPhSoACMGIIA
IGFx48gRJTZ5KA2CooANDoOq5DFA1QBTFFhRQCmCY5ECCBBeQPDho8iKsytgMPpz4UnPHG8cMPi0
0XXtHzEabDCZ4kBDDKh2B1VIcuLDS0aBAAA7

------=_NextPart_000_0027_01CAF3FE.EFD46F80--
michdenis
Le #22120111
Ce message est composé et au format MIME.

------=_NextPart_000_0034_01CAF3FF.E8AA5ED0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0035_01CAF3FF.E8AA5ED0"


------=_NextPart_001_0035_01CAF3FF.E8AA5ED0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Et pour les sceptiques, voir ceci : http://cjoint.com/?fpnxw5KED4



"michdenis" Merci à vous deux.

J'ai mis la petite procédure dans un tout nouveau classeur.
Elle retourne toujours 132.

J'ai testé avec d'autres valeurs et le résultat est exact...

Quelqu'un a une explication ?

Est-ce que mon processeur fait de l'alzheimer ?
Celui de l'ordi bien attendu ! ))




"Jacky" Bonjour Denis

Ecrite comme telle, chez moi, la macro me retourne
Jrs = 19


--
Salutations
JJ


"michdenis" Bonjour à tous,

Une petite facile en ce samedi matin....

La fonction DateDif() de la feuille de calcul peut être utilisée
avec la propriété "Evaluate" en vba.

Dans la procédure soumise à votre attention,
Jrs = 132

En fait, si dans une feuille de calcul j'ai 2 cellules
A1 = 08/01/2080 A2 /12/2075
si je fais ¡-A2 = 1480
= mod(1480/365) = 20

Comment expliquer que Datedif() retourne 132 au lieu de 20 ?
Il y sûrement quelque chose que je ne vois pas ce matin ?
J'y vais pour un second café... en attendant vos explications !
;-)
'---------------------------------------
Sub test()
Dim P As Long, G As Long
P = CLng(CDate("20/12/2075"))
G = CLng(CDate("08/01/2080"))

Jrs = Evaluate("DateDif(" & P & "," & G & ",""yd"")")
End Sub
'---------------------------------------

Merci de votre collaboration.



------=_NextPart_001_0035_01CAF3FF.E8AA5ED0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD>
<META content=text/html;charset=iso-8859-1 http-equiv=Content-Type>
<STYLE></STYLE>
</HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px"
id=MailContainerBody leftMargin=0 topMargin=0 bgColor=#fffbf0
CanvasTabStop="true" name="Compose message area">
<DIV>Et pour les sceptiques, voir ceci :&nbsp; <A
title="http://cjoint.com/?fpnxw5KED4&#10;CTRL + Cliquez ici pour suivre le lien"
href="http://cjoint.com/?fpnxw5KED4">http://cjoint.com/?fpnxw5KED4</A>< /DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px"
dir=ltr>
<DIV>"michdenis" &lt;<A
title="mailto:&#10;CTRL + Cliquez ici pour suivre le lien"
href="mailto:"></A>&gt; a écrit dans
le message de groupe de discussion : <A
title="mailto:&#10;CTRL + Cliquez ici pour suivre le lien"
href="mailto:"> 2MSFTNGP04.phx.gbl <DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Quelqu'un a une explication ?</DIV>
<DIV>&nbsp;</DIV>
<DIV>Est-ce que mon processeur fait de l'alzheimer ?</DIV>
<DIV>Celui de l'ordi bien attendu !&nbsp; <IMG
style="POSITION: static; MARGIN: 0px; FLOAT: none"
title="Clignement d'œil émoticône" tabIndex=-1
alt="Clignement d'œil émoticône"
src="cid:"
MSNNonUserImageOrEmoticon="true">))</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px"
dir=ltr>
<DIV>"Jacky" &lt;<A
title="mailto:&#10;CTRL + Cliquez ici pour suivre le lien"
href="mailto:"></A>&gt; a écrit dans le
message de groupe de discussion : <A
href="mailto:"> 2MSFTNGP02.phx.gbl <DIV><FONT size=2>Bonjour Denis</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>Ecrite comme telle, chez moi, la macro me retourne
</FONT></DIV>
<DIV><FONT size=2>Jrs = 19</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><BR>-- <BR>Salutations<BR>JJ<BR>&nbsp;<BR></DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
<DIV>"michdenis" &lt;<A
href="mailto:"></A>&gt; a écrit
dans le message de news: <A
href="mailto:">443D5F à&nbsp; tous, fonction DateDif() de la feuille de calcul peut être utilisée<BR>avec la
propriété "Evaluate" en vba.<BR><BR>Dans la procédure soumise à votre
attention,<BR>Jrs = 132<BR><BR>En fait, si dans une feuille de calcul j'ai
2 cellules<BR>A1 =&nbsp; 08/01/2080&nbsp;&nbsp;&nbsp; A2&nbsp;
/12/2075<BR>si je fais&nbsp; ¡-A2 =
1480<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;
= mod(1480/365) = 20<BR><BR>Comment expliquer que Datedif() retourne 132
au lieu de 20 ?<BR>Il y sûrement quelque chose que je ne vois pas ce matin
?<BR>J'y vais pour un second café... en attendant vos explications
!<BR>;-)<BR>'---------------------------------------<BR>Sub test()<BR>Dim
P As Long, G As Long<BR>P = CLng(CDate("20/12/2075"))<BR>G =
CLng(CDate("08/01/2080"))<BR><BR>Jrs = Evaluate("DateDif(" &amp; P &amp;
"," &amp; G &amp; ",""yd"")")<BR>End
Sub<BR>'---------------------------------------<BR><BR>Merci de votre
collaboration.<BR><BR>&nbsp;<BR></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></ BODY></HTML>

------=_NextPart_001_0035_01CAF3FF.E8AA5ED0--

------=_NextPart_000_0034_01CAF3FF.E8AA5ED0
Content-Type: image/gif;
name="Emoticon3.gif"
Content-Transfer-Encoding: base64
Content-ID:

R0lGODlhEwATAOZ/AOS6S+zEWdOzO/zmSvTPOe67KPbPN/nVO/LVhf/jR9ytK/zpTvv16PPbnuGs
J9u8SvLEMO7CM/7eQtyjNf3yVtnElcmhLdSlKOq0JP3wV9CgKP/kSLGSSfzvVvnaQrKUUPviR+nT
pP7tU/3zV8y6k8GpbsqyeqSBLZ8/H/3kSfvoTdeXJfjYPaiOhvzcQPHBLemzIruQKP/iRfbTPf/h
Q/XIM9imJvrZPrWLKO24J/znTP3sUua1OaN/KdykLuO4Mf3tUdaZL/7mSv3vU+e2L9iZJvDKVfze
QvPNObqaUtmfNPC+K+SwJvvmTfnZP+a1Kc2JJ/vbQVonFOmyJP7sUOGzLffRN/bPOK1WIruiaOvP
R8Ksed26bPvuVv3rUOGsM/70WPvjS86oTNCqTXVLPX5WSv3wVMN5JvvnS+G1L9aoLP7hRaFDIPfn
wvfXP+y3JvvbP+DUt7KPZ9m7c+vMe7JfJP7lS5t8cPvcQvXMNvz69uDHiVMeDZl4J////////yH/
C05FVFNDQVBFMi4wAwEAAAAh+QQJZAB/ACwAAAAAEwATAAAH/4B/goN/DQFEAQ2Ei4IMRnyQKjIz
EQCQfIwEfBlmQ3wLAwlkPyF/mIMzI2AUFENAoAkSN2mlg0gZGSMUfX07sBK8agyCRikdXSN9fn59
CwspysxjggQiHR3JLXzNCyB92n0ahR5A1tnbOjre4AoVAQkLVF4D0X0pICz1TElEKWgqKprQs4eP
hRteBTCcCBAlgZABOgak2BArCosrNZbkcPChAQEaCRJsGDCAhgQ4LKzUeJFQA4k/EVxIcDEShZIB
Lpwc+FKgAIwYggAgYXHjyBElNnkoDYKigA0Og6rkMUDVAFMUWFFAKYJjkQIIEF5A8OGjyIqzK2Aw
+nPhSc8cbxww+LTRde0fMRpsMJniQEMMqHYHVUhy4sNLRoEAACH5BAkyAH8ALAAAAAATABMAAAf/
gH+Cg4IIAQhthIqDcnx8DyprMxE/UneLfwQ6Dw+PC0IyUj9cUoozFCMUFJ0LAwkboxWESBlgI2AU
HTutCQl9fR96hXa1thQiuwMyfX5+fXuCSCIdFAI9PVphKinLzX0agh5A0x1NWtcDGzR9ZWV9CnEI
MgtUO/a72zISPY59TCYBUuhQsaCgCh3cJLg4YMFCAQwfEOBJkGKAjgFCEuiLwuIKhCU5HGxpQ4CG
jF5sEqyRwNFKjRcPNcT5EyGKhJsoJrhwcsDAy4cYYgiig4TFjRsTUASxkgcCzDcYbJQYVCWPAStX
JmCpAyVIgRUoMOBQpACCWQg+zmBhgwLFGaGLIi48KVAgB1QMMGyMxfRnjgYbTKY40BBjKt9BWUx8
2JIFUyAAIfkEBQoAfwAsAAAAABMAEwAAB/+Af4KDfw0BRAENhIuCDEZ8kCoyMxEAkHyMBHwZZkN8
CwMJZD8hf5iDMyNgFBRDQKAJEjdppYNIGRkjFH19O7ASvGoMgkYpHV0jfX5+fQsLKcrMY4IEIh0d
yS18zQsgfdp9GoUeQNbZ2zo63uAKFQEJC1ReA9F9KSAs9UxJRCloKiqa0LOHj4UbXgUwnAgQJYGQ
AToGpNgQKwqLKzWW5HDwoQEBGgkSbBgwgIYEOCys1HiRUAOJPxFcSHAxEoWSAS6cHPhSoACMGIIA
IGFx48gRJTZ5KA2CooANDoOq5DFA1QBTFFhRQCmCY5ECCBBeQPDho8iKsytgMPpz4UnPHG8cMPi0
0XXtHzEabDCZ4kBDDKh2B1VIcuLDS0aBAAA7

------=_NextPart_000_0034_01CAF3FF.E8AA5ED0--
db
Le #22120251
Le 15/05/2010 13:26, michdenis a écrit :
Et pour les sceptiques, voir ceci : http://cjoint.com/?fpnxw5KED4

"michdenis" écrit dans le message de groupe de discussion :

Merci à vous deux.
J'ai mis la petite procédure dans un tout nouveau classeur.
Elle retourne toujours 132.
J'ai testé avec d'autres valeurs et le résultat est exact...
Quelqu'un a une explication ?
Est-ce que mon processeur fait de l'alzheimer ?
Celui de l'ordi bien attendu ! Clignement d'œil émoticône))



Vu de loin, comme ça, ça ressemble à une interprétation non française
(je ne me mouille pas...) des dates.

db
db
Le #22120391
Le 15/05/2010 13:26, michdenis a écrit :
Et pour les sceptiques, voir ceci : http://cjoint.com/?fpnxw5KED4




J'ai le même problème sous Excel 2007, et a priori, le problème se pose
lorsque l'année de la 2ème date est bissextile :

Sub test()
Dim P As Long, G As Long
P = CLng(CDate("20/12/2075"))
G = CLng(CDate("08/01/2080"))

Jrs = Evaluate("DateDif(" & P & "," & G & ",""yd"")")
End Sub

-> 132


Sub test()
Dim P As Long, G As Long
P = CLng(CDate("20/12/2074"))
G = CLng(CDate("08/01/2079"))

Jrs = Evaluate("DateDif(" & P & "," & G & ",""yd"")")
End Sub

-> 19

Mais je ne vois pas pourquoi :-(

db
michdenis
Le #22120451
| vu de loin, comme ça, ça ressemble à une interprétation
| non française (je ne me mouille pas...) des dates.

P = CLng(CDate("20/12/2075"))
G = CLng(CDate("08/01/2080"))

A )
Le format "date" dans le panneau de configuration
de Windows : jour/mois/année

B ) La fonction de conversion "Cdate()" utilise le format
"Date" du panneau de configuration de Windows pour
transformer une chaîne de caractères en Date.

C ) De plus, la même procédure testée avec plusieurs valeurs
renvoie un bon résultat.

Merci pour ta participation.
Modeste
Le #22120531
Bonsour® Denis

Comment expliquer que Datedif() retourne 132 au lieu de 20 ?
Il y sûrement quelque chose que je ne vois pas ce matin ?
J'y vais pour un second café... en attendant vos explications !



Mais non Denis
IL Y A bel et bien BUG !!!!!!!!!!!!
http://www.cijoint.fr/cjlink.php?file=cj201005/cijQpfA92J.xls

ÚTEDIF(A2;A1;"md")

c'est ce que j'avais répondu à jacquouille
Subject: Re: SOUSTRAIRE DES DATES
Date: Wed, 5 May 2010 09:07:19 +0200

Si la date la plus récente A1 appartient à une année bissextile
ET
si la date la plus récente A1 est en janvier
ET
si le jour de cette date A1 est inferieur ou égal au jour de la date
reference
michdenis
Le #22120521
| J'ai le même problème sous Excel 2007, et a priori, le
| problème se pose lorsque l'année de la 2ème date
| est bissextile :

Effectivement, J'ai fait quelques tests et ton observation
s'avère exacte.
Je suppose que c'est une raison de plus pour se tenir loin
de cette fonction !

Merci.
michdenis
Le #22120511
Sauf que dans l'exemple que j'ai donné, la version
Excel 2003 retourne le bon résultat.

Je suppose qu'on a corrigé en 2010 le bogue de 2007 qui
n'existait pas dans une version antérieure à 2007.

Wow ! toute une amélioration pour la version 2010.
;-)

Merci.



"Modeste"
Bonsour® Denis

Comment expliquer que Datedif() retourne 132 au lieu de 20 ?
Il y sûrement quelque chose que je ne vois pas ce matin ?
J'y vais pour un second café... en attendant vos explications !



Mais non Denis
IL Y A bel et bien BOGUE !!!!!!!!!!!!
http://www.cijoint.fr/cjlink.php?file=cj201005/cijQpfA92J.xls

ÚTEDIF(A2;A1;"md")

c'est ce que j'avais répondu à jacquouille
Subject: Re: SOUSTRAIRE DES DATES
Date: Wed, 5 May 2010 09:07:19 +0200

Si la date la plus récente A1 appartient à une année bissextile
ET
si la date la plus récente A1 est en janvier
ET
si le jour de cette date A1 est inferieur ou égal au jour de la date
reference
db
Le #22120561
Le 15/05/2010 15:11, michdenis a écrit :
Sauf que dans l'exemple que j'ai donné, la version
Excel 2003 retourne le bon résultat.

Je suppose qu'on a corrigé en 2010 le bogue de 2007 qui
n'existait pas dans une version antérieure à 2007.




Hum... mauvaise supposition : le bogue est toujours bien là dans la bêta
d'Excel 2010 :-(

db
Publicité
Poster une réponse
Anonyme