date dif

patiliki

XLDnaute Nouveau
Bonjour,

Pouvez vous m'aider sur cette formule de différence de date!

je veux sortir le nombre de mois sur deux date, exemple:

date légale d'un paiement: 15/02/2009 date de paiement: 20/03/2010

comme reponse j'aimerais avoir le nombre total des mois de paiement:

avec le formule suivant j'obtiens juste le nombre de mois donc 1 mois!!! tandis que 13 mois sont passé entre ces deux dates!!

Merci d'avance
 

Modeste geedee

XLDnaute Barbatruc
Re : date dif

Re...
Diable ! Je viens de chercher un bon moment. Pas moyen de trouver un exemple de ce comportement bizarre. Je suis vexé...
Voulez-vous exhiber les exemples que vous avez ? Si oui, merci d'avance.​

:rolleyes:
Arghhhh ....DateDif, l'encre n'a pas fini de couler...
je pointe ici l'utilisation de l'argument "md"

mais cela ne remet pas en cause ce que je pense de la non-pertinence d'un découpage en années et mois élastiques.

j'attends de la part de nos détracteurs :rolleyes: une fonction réciproque
qui à partir :
-d'une date donnée
-d'un nombre d'années
-d'un nombre de mois
-d un nombre de jour
donnera la date distante
:p
 

Pièces jointes

  • Datedif-Bug.xls
    61.5 KB · Affichages: 44

Roland_M

XLDnaute Barbatruc
Re : date dif

re

@Modeste et Roger ...

je viens de me rendre compte que dans ces cas précis la différence en jours est toujours de 164 !?
voir exemples dans le classeur.

à partir ce constat, il se serait peut être possible d'adapter la formule !
le tout étant maintenant de trouver la condition qui réunie cette situation
est de l'incorporer à une formule pour déduire 164j (dû au bug)
évidement plus facilement réalisable avec macro mais là on a plus de formule excel proprement dit.
alors voilà !

EDIT:

un truc du genre si le résultat Jour >=164 = résultat - 164 !
 

Pièces jointes

  • CalcDiffDate.xlsm
    30.7 KB · Affichages: 38
  • CalcDiffDate.xlsm
    30.7 KB · Affichages: 42
  • CalcDiffDate.xlsm
    30.7 KB · Affichages: 39
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : date dif

re

j'ai fait l'essai suivant et c'est ok !

EDIT: sur les conseils de Victor rectification formule plus courte (merci Victor !)

Code:
=DATEDIF($A41;$B41;"md")-164*(DATEDIF($A41;$B41;"md")>=164)&" j"
 

Pièces jointes

  • CalcDiffDate2.xlsm
    30.8 KB · Affichages: 34
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : date dif

Bonjour à tous.


Je suis perdu ! Que j'ouvre Datedif-Bugs.xls, CalcDiffDate.xlsm ou CalcDiffDate2.xlsm, je n'obtiens jamais de valeurs qui ne soient pas comprises entre -2 (avec 31/12/1906 00:00 ; 01/03/1993 00:00 par exemple) à 30 (avec 12/06/1914 00:00 ; 11/04/1972 00:00 par exemple).
Très_bizarre...

Une hypothèse : la version d'Excel aurait-elle une influence sur le résultat donné par DATEDIF ?


Bonne journée.


ℝOGER2327
#7143


Mardi 10 Gueules 141 (Saint Préservatif, bedeau - fête Suprême Quarte)
16 Pluviôse An CCXXII, 4,7646h - buis
2014-W06-2T11:26:06Z
 

Pièces jointes

  • Capture2.jpg
    Capture2.jpg
    125.9 KB · Affichages: 49
  • Capture1.jpg
    Capture1.jpg
    107.9 KB · Affichages: 53
  • Capture2.jpg
    Capture2.jpg
    125.9 KB · Affichages: 48
  • Capture1.jpg
    Capture1.jpg
    107.9 KB · Affichages: 49
  • Capture2.jpg
    Capture2.jpg
    125.9 KB · Affichages: 42
  • Capture1.jpg
    Capture1.jpg
    107.9 KB · Affichages: 46

Roland_M

XLDnaute Barbatruc
Re : date dif

re

chez moi les dates De ROGER donne ceci !

d1.jpg

donc la formule avec -164 il est évident que là ça pose problème !?
il faut revoir quelle condition avec < 164 !?
c'est une autre affaire !?
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : date dif

Bonjour Roland_M.


bonjour Roger

je sais pas mais ... (je dis peut être une bêtise !?)
dans Options Excel
dans Options avancées...
chez moi Utiliser le calendrier 1904 n'est pas coché !

Chez moi non plus...


ℝOGER2327
#7144


Mardi 10 Gueules 141 (Saint Préservatif, bedeau - fête Suprême Quarte)
16 Pluviôse An CCXXII, 5,0773h - buis
2014-W06-2T12:11:08Z
 

ROGER2327

XLDnaute Barbatruc
Re : date dif

Bonjour Modeste geedee.


:rolleyes:
Arghhhh ....DateDif, l'encre n'a pas fini de couler...
je pointe ici l'utilisation de l'argument "md"

mais cela ne remet pas en cause ce que je pense de la non-pertinence d'un découpage en années et mois élastiques.

j'attends de la part de nos détracteurs :rolleyes: une fonction réciproque
qui à partir :
-d'une date donnée
-d'un nombre d'années
-d'un nombre de mois
-d un nombre de jour
donnera la date distante
:p
Je ne suis le détracteur de personne, mais j'utilise depuis longtemps une telle fonction : voir le classeur joint.​


ℝOGER2327
#7145


Mardi 10 Gueules 141 (Saint Préservatif, bedeau - fête Suprême Quarte)
16 Pluviôse An CCXXII, 5,1746h - buis
2014-W06-2T12:25:09Z
 

Pièces jointes

  • Formules de contrôles.xlsx
    25.6 KB · Affichages: 49

Modeste geedee

XLDnaute Barbatruc
Re : date dif

Bonsour®
Bonjour à tous.


Je suis perdu ! Que j'ouvre Datedif-Bugs.xls, CalcDiffDate.xlsm ou CalcDiffDate2.xlsm, je n'obtiens jamais de valeurs qui ne soient pas comprises entre -2 (avec 31/12/1906 00:00 ; 01/03/1993 00:00 par exemple) à 30 (avec 12/06/1914 00:00 ; 11/04/1972 00:00 par exemple).
Très_bizarre...

Une hypothèse : la version d'Excel aurait-elle une influence sur le résultat donné par DATEDIF ?

Arghhhh...
bonne ou mauvaise nouvelle ?
le bug aurait-il été corrigé pour les versions > 2007
en effet le bug ne serait pas reconduit sous Excel 2010
il y aurait une affaire de pack SP2 ou SP3

mais les seules informations que j'ai trouvé sont là :
Bug in DATEDIF in Excel 2007? - Page 5

et là
“ú”‚¨‚æ‚Ñ“ú•t‚Ì•\Ž¦•û–@‚ÆŒvŽZ•û–@ - Excel ‘€ì‚ÌŠî–{•Ò -
:mad::confused:
mais pour moi le japonais c'est de l'hébreu ... ;)
-- Symptoms --
When unit is YD or MD, and End_date accords in the following condition in Excel2007(SP3) ,
the result of DATEDIF becomes 113 many values than a right value.

Notes : A condition and a symptom of the malfunction are different from the above in the SP3 non-application.
-- Workaround -- ( Requirement: Apply Service Pack 3 to Excel2007. )

A bug does not completely disappear.
A bug of DATEDIF in before Excel2003 and Excel2010 is left.

:mad: je n'ose pas copier ici la traduction proposée par BING :(

;) ;) :D
 

ROGER2327

XLDnaute Barbatruc
Re : date dif

Bonjour à tous.
Re...


(...)
Arghhhh...
bonne ou mauvaise nouvelle ?
le bug aurait-il été corrigé pour les versions > 2007
en effet le bug ne serait pas reconduit sous Excel 2010
il y aurait une affaire de pack SP2 ou SP3
(...)
Je ne sais pas...
Le plus simple, en attendant que le(s) successeur(s) Mr B.G. s’occupent de la chose, est d'écrire notre propre fonction.

Un premier essai :​
VB:
Function roDATEDIF(ByVal Date1 As Date, ByVal Date2 As Date, Incrément$) As Long 'ROGER2327
Dim Fct&, Tmp&, dH#, dM&
Dim x&, y&
'  Application.Volatile 'Facultatif, en fonction des besoins.
  dH = Round(Date2 - Int(Date2) - Date1 + Int(Date1), 6)
  Select Case LCase(Incrément)
  Case "s": Fct = 86400 * (dH - (dH < 0)) Mod 60
  Case "n": Fct = 86400 * (dH - (dH < 0)) \ 60 Mod 60
  Case "h": Fct = 86400 * (dH - (dH < 0)) \ 3600
  Case Else
    Date2 = Int(Date2) - (dH >= 0)
    Tmp = 12 * (Year(Date2) - Year(Date1)) + Month(Date2) - Month(Date1)
    GoSub DECM
    Tmp = Tmp + (dM >= CLng(Date2))
    Select Case LCase(Incrément)
    Case "md": GoSub DECM: Fct = CLng(Date2) - dM - 1
    Case "ym": Fct = Tmp Mod 12
    Case "y": Fct = Tmp \ 12
    End Select
  End Select
  roDATEDIF = Fct
Exit Function
DECM:
  x = DateSerial(Year(Date1), Month(Date1) + Tmp, 1)
  y = Day(DateSerial(Year(x), Month(x) + 1, 0))
  If y < Day(Date1) Then dM = x + y - 1 Else dM = x + Day(Date1) - 1
Return
End Function
La fonction s'applique comme DATEDIF sous les conditions suivantes :
  • Date1 n'est pas postérieure à Date2 ;
  • Incrément prend l'une des valeurs suivantes : "y", "ym", "md", "h", "n", "s".


Bonne soirée.


ℝOGER2327
#7146


Mercredi 11 Gueules 141 (Saint Baobab, célibataire - fête Suprême Quarte)
17 Pluviôse An CCXXII, 7,5620h - lichen
2014-W06-3T18:08:56Z
 

Pièces jointes

  • roDATEDIF.xlsm
    29.4 KB · Affichages: 46

Discussions similaires

Réponses
11
Affichages
508

Statistiques des forums

Discussions
312 189
Messages
2 086 033
Membres
103 102
dernier inscrit
nath34490