Calcul date avec affichage particulier

Phoenix23

XLDnaute Occasionnel
Bonjour à toutes et tous,
Dans le fichier ci joint, 2 exemples de calculs et affichages que j'aimerai si possible obtenir, si quelqu'un pouvait me faire bénéficier de ses connaissances et son aide...
D'avance Merci
Bonne Journée
Cordialement
 

Pièces jointes

  • Classeur1.xlsx
    9 KB · Affichages: 35
  • Classeur1.xlsx
    9 KB · Affichages: 48
  • Classeur1.xlsx
    9 KB · Affichages: 39

Tibo62

XLDnaute Occasionnel
Re : Calcul date avec affichage particulier

Bonjour Double Zero, phoenix 23

Voir PJ
Surtout pour rappel l'utilisation de la formule datedif nécessite l'ajout du compléments Analysis Toolpak ( onglet développeur-->compléments)
Est ce que cela correspond à tes attentes?
 

Pièces jointes

  • Classeur1-2.xlsx
    9.3 KB · Affichages: 30
  • Classeur1-2.xlsx
    9.3 KB · Affichages: 43
  • Classeur1-2.xlsx
    9.3 KB · Affichages: 36

Phoenix23

XLDnaute Occasionnel
Re : Calcul date avec affichage particulier

Bonsoir et Tout d'abord merci de votre Aide.
Tibhault ta réponse et ton exemple me convient, mais, mais... une petite question .
Sur la seconde ligne de l'exemple ta formule ne prends pas en compte la différence entre les années...
Cela signifie t-il que ce n'est pas réalisable ?
D'avance Merci
Cordialement
 

ROGER2327

XLDnaute Barbatruc
Re : Calcul date avec affichage particulier

Bonjour à tous.


Une autre proposition :


  • formule Excel
    (valider par Ctrl Maj Entrée)
Code:
=SI($D2*$E2;
                                   TEXTE(ENT(SOMME(--(MOIS.DECALER(MIN($E2;$D2);LIGNE(DECALER($A$1;;;12*(ABS(ANNEE($D2)-ANNEE($E2))+1);)))<=MAX($E2;$D2)))/12);
"[>1]0"" ans, "";0"" an, """)&
                                         MOD(SOMME(--(MOIS.DECALER(MIN($E2;$D2);LIGNE(DECALER($A$1;;;12*(ABS(ANNEE($D2)-ANNEE($E2))+1);)))<=MAX($E2;$D2)));12)&" mois, "&
TEXTE(MAX($E2;$D2)-MOIS.DECALER(MIN($E2;$D2);SOMME(--(MOIS.DECALER(MIN($E2;$D2);LIGNE(DECALER($A$1;;;12*(ABS(ANNEE($D2)-ANNEE($E2))+1);)))<=MAX($E2;$D2))));
"[>1]0"" jours"";0"" jour""");"")


  • fonction personnalisée VisualBasic
Code:
Function DifDate$(début As Date, fin As Date)
Dim D As Date, f As Date, M&, j&
  If début < fin Then D = début: f = fin + 1 Else D = fin: f = début + 1
  Do While DecMois(D, M + 1) < f: M = M + 1: Loop
  D = DateSerial(Year(DecMois(D, M)), Month(DecMois(D, M)), Day(DecMois(D, M)))
  j = f - D - 1
  DifDate = M \ 12 & " an" & IIf(M \ 12 > 1, "s, ", ", ") & M Mod 12 & " mois, " & j & " jour" & IIf(j > 1, "s", "")
End Function

Function DecMois(D As Date, dec&) As Date
Dim x, y
  x = DateSerial(Year(D), Month(D) + dec, 1)
  y = Day(DateSerial(Year(x), Month(x) + 1, 0))
  DecMois = DateSerial(Year(D), Month(D) + dec, (y + Day(D) - Abs(y - Day(D))) / 2)
End Function


Bonne journée.


ℝOGER2327
#7772


Samedi 28 Gueules 142 (Sainte Hylactor et Pamphagus - fête Suprême Quarte)
4 Ventôse An CCXXIII, 3,9467h - troêne
2015-W08-7T09:28:19Z
 

Pièces jointes

  • Date à date.xlsm
    17.6 KB · Affichages: 23
  • Date à date.xlsm
    17.6 KB · Affichages: 26
  • Date à date.xlsm
    17.6 KB · Affichages: 26

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote