XL 2010 Date diff

hermann

XLDnaute Junior
Supporter XLD
Bonsoir
Svp, comment utiliser les ancienne date pour faire la soustraction?

31/12/1935 - 21/03/1882
ou
21/03/1882 - 31/12/1935

Merci
@r

NB: Pas de problème.
=DATEDIF(h3;h5;"y")&" Ann., "
&DATEDIF(h3;h5;"ym")&" Mo., "
&h5-DATE(ANNEE(h5);MOIS(h5);1)&" Jrs."

27 Ann., 7 Mo., 30 Jrs.
 

Modeste geedee

XLDnaute Barbatruc
Bonsoir
Svp, comment utiliser les ancienne date pour faire la soustraction?

31/12/1935 - 21/03/1882
ou
21/03/1882 - 31/12/1935

Merci
@r

NB: Pas de problème.
=DATEDIF(h3;h5;"y")&" Ann., "
&DATEDIF(h3;h5;"ym")&" Mo., "
&h5-DATE(ANNEE(h5);MOIS(h5);1)&" Jrs."

27 Ann., 7 Mo., 30 Jrs.
augmenter chaque date de 700 ans ( soit 255675 jours)
methode basée sur le fait que les jours de la semaine se retrouvent aux mêmes dates au bout de 28 ans et notamment les dimanches,

700 est un multiple de 28 qui permet d'exploiter les dates depuis l'an 1200
decal=255675
=DATEDIF(h3+decal;h5+decal;"y")&" Ann., "
&DATEDIF(h3+decal;h5+decal;"ym")&" Mo., "
&DATEDIF(h3+decal;h5+decal;"md")&" Jrs."

:rolleyes: Nb :
le découpage en années mois et jours d'une durée calendaire n'a aucune valeur mathématique,
les durées des mois et années n'étant pas des constantes
 

job75

XLDnaute Barbatruc
Bonjour hermann, Modeste geedee,

J'ai fabriqué cette fonction VBA :
VB:
Function NewDateDif(dat1 As Date, dat2 As Date) As String
Dim ans%, mois%, jours%
ans = Year(dat2) - Year(dat1) + (DateSerial(2000, Month(dat2), Day(dat2)) < DateSerial(2000, Month(dat1), Day(dat1)))
mois = Month(dat2) - Month(dat1) + (Day(dat2) < Day(dat1))
If mois < 0 Then mois = mois + 12
jours = dat2 - DateSerial(Year(dat2), Month(dat2), Day(dat1))
If jours < 0 Then jours = dat2 - DateSerial(Year(dat2), Month(dat2) - 1, Day(dat1))
NewDateDif = IIf(ans, ans & " an" & IIf(ans > 1, "s", ""), "") & " " & _
    IIf(mois, mois & " mois", "") & " " & IIf(jours, jours & " jour" & IIf(jours > 1, "s", ""), "")
NewDateDif = Application.Trim(NewDateDif) 'SUPPRESPACE
End Function
Elle vaut ce qu'elle vaut, voyez le fichier joint car je n'ai pas vraiment testé.

A+
 

Pièces jointes

  • NewDateDif(1).xlsm
    20.8 KB · Affichages: 5

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonsoir
Svp, comment utiliser les ancienne date pour faire la soustraction?

31/12/1935 - 21/03/1882
ou
21/03/1882 - 31/12/1935

voir aussi :

De nombreux utilisateurs sont surpris d'apprendre qu'Excel ne peut pas fonctionner avec des dates antérieures à 1900. Je crée un complément qui résout ce problème. Le complément Fonctions de date étendue (XDate) vous permet de travailler avec des dates comprises entre 0100 et 9999.

Une fois le complément XDate installé, vous pouvez utiliser l'une des nouvelles fonctions de feuille de calcul suivantes dans vos formules:

  • XDATE (y, m, d, fmt) : renvoie une date pour une année, un mois et un jour donnés. En option, vous pouvez fournir une chaîne de formatage de date.
  • XDATEADD (xdate1, days, fmt) : ajoute un nombre spécifié de jours à une date. En option, vous pouvez fournir une chaîne de formatage de date.
  • XDATEDIF (xdate1, xdate2) : renvoie le nombre de jours entre deux dates.
  • XDATEYEARDIF (xdate1, xdate2) : renvoie le nombre d'années complètes entre deux dates (utile pour calculer les âges).
  • XDATEYEAR (xdate1) : Renvoie l'année d'une date.
  • XDATEMONTH (xdate1) : Renvoie le mois d'une date.
  • XDATEDAY (xdate1) : renvoie le jour d'une date.
  • XDATEDOW (xdate1) : Renvoie le jour de la semaine d'une date (sous forme d'entier compris entre 1 et 7).
Ce sont toutes les fonctions VBA.
 

Statistiques des forums

Discussions
312 232
Messages
2 086 461
Membres
103 219
dernier inscrit
Akyrah