calcul en mois et jours

fanfan_04

XLDnaute Nouveau
Bonjour à toutes et tous,

Voici j'ai un tableau avec 2 dates et je cherche à faire le calcul en mois et jours. Cela me semblait simple mais...

Par exemple du 16/02/2012 au 15/02/2013 me fait 11 mois et 30 jours et je souhaite que cela fasse 12 mois.
Ainsi du 16/02/2012 au 16/03/2013 = 12 mois et 1 jour.
Pareil pour aller du 17/02/11 au 16/08/2011 cela donne 6 mois et 0 jour et non 5 mois et 30 jours.

Voici la formule que j'applique

=DATEDIF(B5;C5;"ym")&" mois "&DATEDIF(B5;C5;"md")&" jour(s)"

Merci de m'aider
 

ROGER2327

XLDnaute Barbatruc
Re : calcul en mois et jours

Bonjour fanfan_04



Original, votre problème. En gros vous voulez faire une "soustraction" par laquelle 1 - 1 = 1.
Pourquoi pas ?

Essayez cette fonction personnalisée (Code à copier dans un Module Standard) :​
VB:
Function diffDateSpe(d1 As Date, d2 As Date) As String
Dim m&, j&
  If CLng(d1) <= CLng(d2) Then
    If d1 > 60 Then                                'Parce que, chez Microsoft, il existe un 29/02/1900 !'
      d2 = d2 + 1                                  'Pour que    0 - 0 = 1                               '
      Do While DateSerial(Year(d1), Month(d1) + m + 1, Day(d1)) <= d2: m = m + 1: Loop      'Mois       '
      Do While DateSerial(Year(d1), Month(d1) + m, Day(d1) + 1) + j <= d2: j = j + 1: Loop  'Jours      '
        diffDateSpe = IIf(m, m & " mois ", "") & _
      IIf(j Or (m + j = 0), j & " jour" & IIf(j > 1, "s", ""), "")                          'Affichage  '
    End If
  End If
End Function
Évitez la fonction DATEDIF : elle donne quelquefois des résultats erronés.​


ROGER2327
#6409


Jeudi 26 Décervelage 140 (Escrime - Vacuation)
4 Pluviôse An CCXXI, 4,6314h - perce-neige
2013-W04-3T11:06:55Z
 

Discussions similaires

Réponses
14
Affichages
794
Réponses
46
Affichages
1 K

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji