Bonsour=AE AV, bonsour=AE =E0 tous
Oui schmilblick est le mot....
lors de l'explication =E0 des coll=E9gues l'utilisation de la=20
fonction "non document=E9e" DATEDIF,=20
'=3DDATEDIF(A1,A2,"y") & " ans " &DATEDIF(A1,A2,"ym") &"=20
mois " & DATEDIF(A1,A2,"yd") & " jrs"
j'ai =E9galement utilis=E9 une fonction (=E9prouv=E9e) perso de=20
Laurent Longre :
http://groups.google.fr/groups?
hl=3Dfr&lr=3D&q=3Ddifferencedate+longre+group%
3Amicrosoft.public.fr.excel&btnG=3DRechercher
Function AGEAMJ(date1 As Date, date2 As Date) As String
'd'apr=E9s Laurent Longre adaptation GeeDee
Application.Volatile
Dim XA As Long, XM As Long, XJ As Long, D1 As Long, D2 As=20
Long
D1 =3D Int(date1): D2 =3D Int(date2)
XA =3D Evaluate("DATEDIF(" & D1 & "," & D2 & ",""y""")
AGEAMJ =3D XA & IIf(XA > 1, " ans, ", " an, ")
XM =3D Evaluate("DATEDIF(" & D1 & "," & D2 & ",""ym""")
AGEAMJ =3D AGEAMJ & IIf(XM <> 0, XM & " mois, ", "")
XJ =3D Evaluate("DATEDIF(" & D1 & "," & D2 & ",""md""")
AGEAMJ =3D AGEAMJ & XJ & IIf(XJ > 1, " jours", " jour")
End Function
tout va bien, merveilleux, formidable, indispensable
bref que des =E9loges... ;o))
(rendons =E0 Filochard ce qui est =E0 Filochard)
voila t'y pas que ma candide neu-neu de coll=E8gue ;o)
tape DATEDIFF dans l'aide de l'=E9diteur VBA ....
je vous le donne Emile ???
la fonction DATEDIFF VBA est document=E9e !!!!!=20
et c'est l=E0 qu'est le schmilblick :
la syntaxe n'est pas la m=EAme, parait plus riche...
mais je n'arrive pas =E0 obtenir par adaptation un r=E9sultat=20
similaire au Evaluate si cher =E0 notre pr=E9sident=20
!!!??? ###@=BF
Function AGEAMJ2(date1 As Date, date2 As Date) As String
'd'apr=E9s Laurent Longre adaptation GeeDee
Application.Volatile
Dim XA As Long, XM As Long, XJ As Long, D1 As Long, D2 As=20
Long
D1 =3D Int(date1): D2 =3D Int(date2)
XA =3D DateDiff("yyyy", D1, D2) - 1
AGEAMJ2 =3D XA & IIf(XA <> 1, " ans, ", " an, ")
XM =3D DateDiff("m", D1, D2)
AGEAMJ2 =3D AGEAMJ2 & IIf(XM <> 0, XM & " mois, ", "")
XJ =3D DateDiff("d", D1, D2)
AGEAMJ2 =3D AGEAMJ2 & XJ & IIf(XJ <> 1, " jours", "=20
jour")
End Function
adaptation possible ou pas avec DATEDIFF ????
serait-ce un d=E9fi pour le blog de Gaetan ?? ;o)))
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
voila t'y pas que ma candide neu-neu de collègue ;o) tape DATEDIFF dans l'aide de l'éditeur VBA .... je vous le donne Emile ??? la fonction DATEDIFF VBA est documentée !!!!!
Bon, jusque là, pas de surprise !
...............
adaptation possible ou pas avec DATEDIFF ????
Surement, mais cette fonction ne gère pas bien les Jours = 0 alors tant qu'à faire de l'Evaluate, je propose ça :
Function DATDIF(Déb As Date, Fin As Date) 'AV d'après LL DATDIF = Evaluate("TRIM(IF(" & Fin * 1 & "-" & Déb * 1 & ",TEXT(DATEDIF(" & Déb * 1 & "," & Fin * 1 & ",""y""),""[>1]0"""" ans"""";[>]""""1 an"""";"")&TEXT(DATEDIF(" & Déb * 1 & "," & Fin * 1 & ",""ym""),""[>] 0"""" mois """"; "")&TEXT(DATEDIF(" & Déb * 1 & "," & Fin * 1 & ",""md""),""[>1]0"""" jours"""";[>]""""1 jour"""";""),""0 jour""))") End Function
ATTENTION : une seule ligne d'instruction pour DATDIF = ...........
AV
voila t'y pas que ma candide neu-neu de collègue ;o)
tape DATEDIFF dans l'aide de l'éditeur VBA ....
je vous le donne Emile ???
la fonction DATEDIFF VBA est documentée !!!!!
Bon, jusque là, pas de surprise !
...............
adaptation possible ou pas avec DATEDIFF ????
Surement, mais cette fonction ne gère pas bien les Jours = 0 alors tant qu'à
faire de l'Evaluate, je propose ça :
Function DATDIF(Déb As Date, Fin As Date) 'AV d'après LL
DATDIF = Evaluate("TRIM(IF(" & Fin * 1 & "-" & Déb * 1 & ",TEXT(DATEDIF(" & Déb
* 1 & "," & Fin * 1 & ",""y""),""[>1]0"""" ans"""";[>]""""1
an"""";"")&TEXT(DATEDIF(" & Déb * 1 & "," & Fin * 1 & ",""ym""),""[>] 0"""" mois
""""; "")&TEXT(DATEDIF(" & Déb * 1 & "," & Fin * 1 & ",""md""),""[>1]0""""
jours"""";[>]""""1 jour"""";""),""0 jour""))")
End Function
ATTENTION : une seule ligne d'instruction pour DATDIF = ...........
voila t'y pas que ma candide neu-neu de collègue ;o) tape DATEDIFF dans l'aide de l'éditeur VBA .... je vous le donne Emile ??? la fonction DATEDIFF VBA est documentée !!!!!
Bon, jusque là, pas de surprise !
...............
adaptation possible ou pas avec DATEDIFF ????
Surement, mais cette fonction ne gère pas bien les Jours = 0 alors tant qu'à faire de l'Evaluate, je propose ça :
Function DATDIF(Déb As Date, Fin As Date) 'AV d'après LL DATDIF = Evaluate("TRIM(IF(" & Fin * 1 & "-" & Déb * 1 & ",TEXT(DATEDIF(" & Déb * 1 & "," & Fin * 1 & ",""y""),""[>1]0"""" ans"""";[>]""""1 an"""";"")&TEXT(DATEDIF(" & Déb * 1 & "," & Fin * 1 & ",""ym""),""[>] 0"""" mois """"; "")&TEXT(DATEDIF(" & Déb * 1 & "," & Fin * 1 & ",""md""),""[>1]0"""" jours"""";[>]""""1 jour"""";""),""0 jour""))") End Function
ATTENTION : une seule ligne d'instruction pour DATDIF = ...........
AV
Modeste
;o))) j'entends bien président .... je suis également un trés chaud partisant de Evaluate !!!
pour moi le schmilblick était : dans l'utilisation de la fonction VBA DATEDIFF (2 F) non dans l'utilisation de la formule calcul DATEDIF (1 F)
tu me dira cela ne fait qu'un ffffff.... de plus ;o)) notament la non-possiblité d'écrire "ym" ou "yd"
Sub JPS() Dim datejps As Date datejps = DateValue("12 fév 1900")
MsgBox DateDiff("yyyy", datejps, Now) & " ans " & _ DateDiff("m", datejps, Now) & " mois " & _ DateDiff("d", datejps, Now) & " jrs", vbCritical, "Age du patriarche ?? Scud !!!" '------- erreur là MsgBox DateDiff("yyyy", datejps, Now) & " ans " & _ DateDiff("ym", datejps, Now) & " mois " & _ DateDiff("yd", datejps, Now) & " jrs" End Sub
-----Message d'origine-----
voila t'y pas que ma candide neu-neu de collègue ;o) tape DATEDIFF dans l'aide de l'éditeur VBA .... je vous le donne Emile ??? la fonction DATEDIFF VBA est documentée !!!!!
Bon, jusque là, pas de surprise !
................
adaptation possible ou pas avec DATEDIFF ????
Surement, mais cette fonction ne gère pas bien les Jours = 0 alors tant qu'à
faire de l'Evaluate, je propose ça :
Function DATDIF(Déb As Date, Fin As Date) 'AV d'après LL DATDIF = Evaluate("TRIM(IF(" & Fin * 1 & "-" & Déb * 1 & ",TEXT(DATEDIF(" & Déb
MsgBox DateDiff("yyyy", datejps, Now) & " ans " & _
DateDiff("m", datejps, Now) & " mois " & _
DateDiff("d", datejps, Now) & " jrs",
vbCritical, "Age du patriarche ?? Scud !!!"
'------- erreur là
MsgBox DateDiff("yyyy", datejps, Now) & " ans " & _
DateDiff("ym", datejps, Now) & " mois " & _
DateDiff("yd", datejps, Now) & " jrs"
End Sub
-----Message d'origine-----
voila t'y pas que ma candide neu-neu de collègue ;o)
tape DATEDIFF dans l'aide de l'éditeur VBA ....
je vous le donne Emile ???
la fonction DATEDIFF VBA est documentée !!!!!
Bon, jusque là, pas de surprise !
................
adaptation possible ou pas avec DATEDIFF ????
Surement, mais cette fonction ne gère pas bien les Jours
= 0 alors tant qu'à
faire de l'Evaluate, je propose ça :
Function DATDIF(Déb As Date, Fin As Date) 'AV d'après LL
DATDIF = Evaluate("TRIM(IF(" & Fin * 1 & "-" & Déb * 1
& ",TEXT(DATEDIF(" & Déb
MsgBox DateDiff("yyyy", datejps, Now) & " ans " & _ DateDiff("m", datejps, Now) & " mois " & _ DateDiff("d", datejps, Now) & " jrs", vbCritical, "Age du patriarche ?? Scud !!!" '------- erreur là MsgBox DateDiff("yyyy", datejps, Now) & " ans " & _ DateDiff("ym", datejps, Now) & " mois " & _ DateDiff("yd", datejps, Now) & " jrs" End Sub
-----Message d'origine-----
voila t'y pas que ma candide neu-neu de collègue ;o) tape DATEDIFF dans l'aide de l'éditeur VBA .... je vous le donne Emile ??? la fonction DATEDIFF VBA est documentée !!!!!
Bon, jusque là, pas de surprise !
................
adaptation possible ou pas avec DATEDIFF ????
Surement, mais cette fonction ne gère pas bien les Jours = 0 alors tant qu'à
faire de l'Evaluate, je propose ça :
Function DATDIF(Déb As Date, Fin As Date) 'AV d'après LL DATDIF = Evaluate("TRIM(IF(" & Fin * 1 & "-" & Déb * 1 & ",TEXT(DATEDIF(" & Déb
jours"""";[>]""""1 jour"""";""),""0 jour""))") End Function
ATTENTION : une seule ligne d'instruction pour DATDIF = ...........
AV
.
AV
<pour moi le schmilblick était : <dans l'utilisation de la fonction VBA DATEDIFF (2 F) <non dans l'utilisation de la formule calcul DATEDIF (1 F)
Disons que vu le nbre de ligne, j'ai eu un peu la flemme d'examiner donc j'ai testé > j'ai trouvé qu'il y avait un couac > j'ai proposé autre chose et .... je me suis arrêté là...complétement épuisé !
Pour le reste, faudra attendre un passant qui passe ou que je m'y mette le nez car, pour l'heure, faut que je m'échappe...
AV
<pour moi le schmilblick était :
<dans l'utilisation de la fonction VBA DATEDIFF (2 F)
<non dans l'utilisation de la formule calcul DATEDIF (1 F)
Disons que vu le nbre de ligne, j'ai eu un peu la flemme d'examiner donc j'ai
testé > j'ai trouvé qu'il y avait un couac > j'ai proposé autre chose et .... je
me suis arrêté là...complétement épuisé !
Pour le reste, faudra attendre un passant qui passe ou que je m'y mette le nez
car, pour l'heure, faut que je m'échappe...
<pour moi le schmilblick était : <dans l'utilisation de la fonction VBA DATEDIFF (2 F) <non dans l'utilisation de la formule calcul DATEDIF (1 F)
Disons que vu le nbre de ligne, j'ai eu un peu la flemme d'examiner donc j'ai testé > j'ai trouvé qu'il y avait un couac > j'ai proposé autre chose et .... je me suis arrêté là...complétement épuisé !
Pour le reste, faudra attendre un passant qui passe ou que je m'y mette le nez car, pour l'heure, faut que je m'échappe...
AV
Daniel.M
Bonjour Modeste,
adaptation possible ou pas avec DATEDIFF ????
Non pas d'après moi. C'est-à-dire qu'il faudrait inclure de la logique pour savoir si les numéros de mois sont plus grands, et si les jours sont plus grands, parce que les paramètres de DATEDIFF ne 'prévoient' pas cette possibilité.
Donc, il n'y a pas d'avantages, AMA, d'utiliser DATEDIFF. Il vaut mieux faire tout à la mi-mine si on désire faire fi des EVALUATE (et évidemment, il ne faut pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
Function AGEAMJ3(date1 As Date, date2 As Date) As String 'd'aprés Laurent Longre adaptation GeeDee, réadaptation Daniel M. ;-)
Dim n As Long Dim An1 As Integer, An2 As Integer Dim Mois1 As Integer, Mois2 As Integer Dim Jour1 As Integer, Jour2 As Integer
Non pas d'après moi.
C'est-à-dire qu'il faudrait inclure de la logique pour savoir si les numéros de
mois sont plus grands, et si les jours sont plus grands, parce que les
paramètres de DATEDIFF ne 'prévoient' pas cette possibilité.
Donc, il n'y a pas d'avantages, AMA, d'utiliser DATEDIFF. Il vaut mieux faire
tout à la mi-mine si on désire faire fi des EVALUATE (et évidemment, il ne faut
pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
Function AGEAMJ3(date1 As Date, date2 As Date) As String
'd'aprés Laurent Longre adaptation GeeDee, réadaptation Daniel M. ;-)
Dim n As Long
Dim An1 As Integer, An2 As Integer
Dim Mois1 As Integer, Mois2 As Integer
Dim Jour1 As Integer, Jour2 As Integer
Non pas d'après moi. C'est-à-dire qu'il faudrait inclure de la logique pour savoir si les numéros de mois sont plus grands, et si les jours sont plus grands, parce que les paramètres de DATEDIFF ne 'prévoient' pas cette possibilité.
Donc, il n'y a pas d'avantages, AMA, d'utiliser DATEDIFF. Il vaut mieux faire tout à la mi-mine si on désire faire fi des EVALUATE (et évidemment, il ne faut pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
Function AGEAMJ3(date1 As Date, date2 As Date) As String 'd'aprés Laurent Longre adaptation GeeDee, réadaptation Daniel M. ;-)
Dim n As Long Dim An1 As Integer, An2 As Integer Dim Mois1 As Integer, Mois2 As Integer Dim Jour1 As Integer, Jour2 As Integer
;o))) Merci Daniel.... on oublie donc ce DATEDIFF avec x fffffff.....
ta solution ne pouvant que donner un résultat correct !!! cela confirme mes élucubrations, j'ai encore planché sur un sujet comme disaient les shadoks :
"s'il n'y a pas de solution, il n'y a pas de probleme !!!"
pfffff... on en restera au VAleureux eVAluate d'AV!!!! ;o))) @+
-----Message d'origine----- Bonjour Modeste,
adaptation possible ou pas avec DATEDIFF ????
Non pas d'après moi. C'est-à-dire qu'il faudrait inclure de la logique pour savoir si les numéros de
mois sont plus grands, et si les jours sont plus grands, parce que les
paramètres de DATEDIFF ne 'prévoient' pas cette possibilité.
Donc, il n'y a pas d'avantages, AMA, d'utiliser DATEDIFF. Il vaut mieux faire
tout à la mi-mine si on désire faire fi des EVALUATE (et évidemment, il ne faut
pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
Function AGEAMJ3(date1 As Date, date2 As Date) As String 'd'aprés Laurent Longre adaptation GeeDee, réadaptation Daniel M. ;-)
Dim n As Long Dim An1 As Integer, An2 As Integer Dim Mois1 As Integer, Mois2 As Integer Dim Jour1 As Integer, Jour2 As Integer
An1 = Year(date1): Mois1 = Month(date1): Jour1 = Day (date1)
An2 = Year(date2): Mois2 = Month(date2): Jour2 = Day (date2)
n = An2 - An1 + (Mois1 > Mois2 Or (Mois1 = Mois2 And Jour1 > Jour2))
AGEAMJ3 = n & IIf(n > 1, " ans", " an")
n = Mois2 - Mois1
If Jour1 > Jour2 Then n = n - 1 If n < 0 Then n = n + 12
;o)))
Merci Daniel....
on oublie donc ce DATEDIFF avec x fffffff.....
ta solution ne pouvant que donner un résultat correct !!!
cela confirme mes élucubrations, j'ai encore planché sur
un sujet comme disaient les shadoks :
"s'il n'y a pas de solution, il n'y a pas de probleme !!!"
pfffff... on en restera au VAleureux eVAluate d'AV!!!!
;o)))
@+
-----Message d'origine-----
Bonjour Modeste,
adaptation possible ou pas avec DATEDIFF ????
Non pas d'après moi.
C'est-à-dire qu'il faudrait inclure de la logique pour
savoir si les numéros de
mois sont plus grands, et si les jours sont plus grands,
parce que les
paramètres de DATEDIFF ne 'prévoient' pas cette
possibilité.
Donc, il n'y a pas d'avantages, AMA, d'utiliser
DATEDIFF. Il vaut mieux faire
tout à la mi-mine si on désire faire fi des EVALUATE (et
évidemment, il ne faut
pas compter sur Alain qui, lui, en rajoute une
couche... ;-) )
Function AGEAMJ3(date1 As Date, date2 As Date) As String
'd'aprés Laurent Longre adaptation GeeDee, réadaptation
Daniel M. ;-)
Dim n As Long
Dim An1 As Integer, An2 As Integer
Dim Mois1 As Integer, Mois2 As Integer
Dim Jour1 As Integer, Jour2 As Integer
An1 = Year(date1): Mois1 = Month(date1): Jour1 = Day
(date1)
An2 = Year(date2): Mois2 = Month(date2): Jour2 = Day
(date2)
n = An2 - An1 + (Mois1 > Mois2 Or (Mois1 = Mois2 And
Jour1 > Jour2))
AGEAMJ3 = n & IIf(n > 1, " ans", " an")
n = Mois2 - Mois1
If Jour1 > Jour2 Then n = n - 1
If n < 0 Then n = n + 12
;o))) Merci Daniel.... on oublie donc ce DATEDIFF avec x fffffff.....
ta solution ne pouvant que donner un résultat correct !!! cela confirme mes élucubrations, j'ai encore planché sur un sujet comme disaient les shadoks :
"s'il n'y a pas de solution, il n'y a pas de probleme !!!"
pfffff... on en restera au VAleureux eVAluate d'AV!!!! ;o))) @+
-----Message d'origine----- Bonjour Modeste,
adaptation possible ou pas avec DATEDIFF ????
Non pas d'après moi. C'est-à-dire qu'il faudrait inclure de la logique pour savoir si les numéros de
mois sont plus grands, et si les jours sont plus grands, parce que les
paramètres de DATEDIFF ne 'prévoient' pas cette possibilité.
Donc, il n'y a pas d'avantages, AMA, d'utiliser DATEDIFF. Il vaut mieux faire
tout à la mi-mine si on désire faire fi des EVALUATE (et évidemment, il ne faut
pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
Function AGEAMJ3(date1 As Date, date2 As Date) As String 'd'aprés Laurent Longre adaptation GeeDee, réadaptation Daniel M. ;-)
Dim n As Long Dim An1 As Integer, An2 As Integer Dim Mois1 As Integer, Mois2 As Integer Dim Jour1 As Integer, Jour2 As Integer
An1 = Year(date1): Mois1 = Month(date1): Jour1 = Day (date1)
An2 = Year(date2): Mois2 = Month(date2): Jour2 = Day (date2)
n = An2 - An1 + (Mois1 > Mois2 Or (Mois1 = Mois2 And Jour1 > Jour2))
AGEAMJ3 = n & IIf(n > 1, " ans", " an")
n = Mois2 - Mois1
If Jour1 > Jour2 Then n = n - 1 If n < 0 Then n = n + 12
Oui, pas de problème pour ceux qui ne tremblent pas devant EVALUATE. :-)
Rajouter une couche: En remettre. Comme pour la peinture. Je crois comprendre que ce n'est pas une expression fréquente chez les cousins.
Salutations,
Daniel M.
"AV" wrote in message news:%
pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
Elle est pas belle ma "couche" ? ;-) AV
GD
;o))) si ... si... Daniel.M cette expression est trés connue chez nous !!!! mais on ne remet pas une couche pour faire beau , mais plutot pour signifier à l'interlocuteur qu'il a la comprehension lente !!!! de là l'expression : "t'ain , celui-la il tient une sacrée couche !!!"
tu comprendra donc au passage que la souriette de notre AV n'est pas toujours innocente !!! Modestement je ne me suis pas senti concerné ... ;o)))
Oui, pas de problème pour ceux qui ne tremblent pas devant EVALUATE. :-)
Rajouter une couche: En remettre. Comme pour la peinture. Je crois comprendre que ce n'est pas une expression fréquente chez les cousins.
Salutations,
Daniel M.
"AV" wrote in message news:%
pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
Elle est pas belle ma "couche" ? ;-) AV
;o)))
si ... si... Daniel.M cette expression est trés connue chez nous !!!!
mais on ne remet pas une couche pour faire beau ,
mais plutot pour signifier à l'interlocuteur qu'il a la comprehension lente
!!!!
de là l'expression :
"t'ain , celui-la il tient une sacrée couche !!!"
tu comprendra donc au passage que la souriette de notre AV n'est pas
toujours innocente !!!
Modestement je ne me suis pas senti concerné ...
;o)))
Oui, pas de problème pour ceux qui ne tremblent pas devant EVALUATE.
:-)
Rajouter une couche: En remettre. Comme pour la peinture. Je crois
comprendre que ce n'est pas une expression fréquente chez les cousins.
Salutations,
Daniel M.
"AV" <alainPFFFvallon@wanadoo.fr> wrote in message
news:%23zIWYusDFHA.960@TK2MSFTNGP09.phx.gbl...
pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
;o))) si ... si... Daniel.M cette expression est trés connue chez nous !!!! mais on ne remet pas une couche pour faire beau , mais plutot pour signifier à l'interlocuteur qu'il a la comprehension lente !!!! de là l'expression : "t'ain , celui-la il tient une sacrée couche !!!"
tu comprendra donc au passage que la souriette de notre AV n'est pas toujours innocente !!! Modestement je ne me suis pas senti concerné ... ;o)))
Oui, pas de problème pour ceux qui ne tremblent pas devant EVALUATE. :-)
Rajouter une couche: En remettre. Comme pour la peinture. Je crois comprendre que ce n'est pas une expression fréquente chez les cousins.
Salutations,
Daniel M.
"AV" wrote in message news:%
pas compter sur Alain qui, lui, en rajoute une couche... ;-) )
Elle est pas belle ma "couche" ? ;-) AV
AV
tu comprendra donc au passage que la souriette de notre AV n'est pas toujours innocente !!!
Ben là tu es parti dans une interprétation très libre .....
AV
tu comprendra donc au passage que la souriette de notre AV n'est pas
toujours innocente !!!
Ben là tu es parti dans une interprétation très libre .....