Afficher nbres de jours restant sous la forme années mois jours

Résolu/Fermé
nonmn - 13 juil. 2013 à 12:35
 nonmn - 15 juil. 2013 à 13:46
Bonjour,
Voici mon problème.
je fais un tableau qui liste divers documents et leur durée de validité
en C3 j'ai la date de début
en E3 la date de fin de validité
en D3 j'ai calculer le nbre de jours restant avec la fonction AUJOUDHUI;
Je souhaiterai :
1 que le nbre s'affiche sous forme années mois et jours
2 Attribuer une 1ère couleur à la cellule, 2 mois avant la date d'échéance
3 Attribuer la couleur rouge si le nbre de jour restant est égal à zéro
4 Que le décompte du nbre de jour restant s'arrête à zéro et ne soit pas négatif
est ce que c'est possible ? Si oui quelle formule dois-je utiliser ?
J'ai essayé en combinant la fonction si et aujourd'hui sans résultat

D'avance merci







3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 13/07/2013 à 14:11
Bonjour,

Extrait du site de laurent longre



Syntaxe : =DATEDIF(Date1;Date2;Intervalle)

Cette fonction renvoie la différence entre Date1 et Date2 (Date2 >= Date1) selon l'argument Intervalle, qui peut prendre les valeurs suivantes :

"y" : différence en années
"m" : différence en mois
"d" : différence en jours
"ym" : différence en mois, une fois les années soustraites
"yd" : différence en jours, une fois les années soustraites
"md" : différence en jours, une fois les années et les mois soustraits
....
....
Age en années, mois et jours :
=DATEDIF(A1;B1;"y")&SI(DATEDIF(A1;B1;"y")>1;" ans, ";" an, ")&DATEDIF(A1;B1;"ym") &" mois, "&DATEDIF(A1;B1;"md")&SI(DATEDIF(A1;B1;"md")>1;" jours";" jour")

Cette formule peut faire apparaître des "0 an", "0 mois" ou "0 jour", par exemple si A1=22/01/1968 et B1=22/02/1968, elle renverra "0 an, 1 mois, 0 jour".
Pour éliminer ces 0 et renvoyer seulement "1 mois", utiliser la formule suivante :
=SUPPRESPACE(SI(B1-A1;TEXTE(DATEDIF(A1;B1;"y");"[>1]0"" ans"";[>]""1 an"";")&TEXTE(DATEDIF(A1;B1;"ym");"[>] 0"" mois "";")&TEXTE(DATEDIF(A1;B1;"md");"[>1]0"" jours"";[>]""1 jour"";");"0 jour"))


pour les "couleurs si...." tu as les Mises en formes conditionnelles-style ne présentant aucune difficulté à réaliser

su XL>= 2007
ruban "accueil-style-mise en forme conditionnelle

Michel
0
Bonjour
Merci de vous pencher sur mon problème
J'ai essayé la formule . Celle-ci calcule la durée entre la date de début et la date de fin. En fait je souhaiterai faire un décompte
ex en C3 J'ai 25 janv 2013
en E3 j'ai 15 juillet 2013 date d'échéance
en D3 je devrai avoir le nbre de jours restants par rapport à la date du jour c'est à dire 2 jours
avec la formule si dessus j'ai 4 mois et 20 jours
J'ai essayé la formule =E3-AUJOURDHUI(), j'obtiens 4098 pour 15 ans, j'aurai aimé convertir ce chiffre
Pour info si ca peut aidé je travaille avec excel 2003

Merci
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
13 juil. 2013 à 18:51
Bonjour,

dans datedif() met AUJOURDHUI() en paramètre de Date1 :
=DATEDIF(AUJOURDHUI();E3;"y")&SI(..........

eric
0
Bonjour,
J'ai: essayer la formule d'Eric comme ceci
=DATEDIF(AUJOURDHUI();E3;"y")&SI(DATEDIF(AUJOURDHUI();E3;"y")>1;" ans, ";" an, ")&DATEDIF(AUJOURDHUI();E3;"ym") &" mois, "&DATEDIF(AUJOURDHUI();E3;"md")&SI(DATEDIF(AUJOURDHUI();E3;"md")>1;" jours";" jour")
Ca fonctionne en partie. Comme le dit michel_m, elle fait apparaitre des 0 an, 0 mois, 0 jour
J'ai 2 questions : Comment faire pour éliminer les 0.et renvoyer les dates positives ?
J'ai utilisé la 2ème formule de michel_m de cette façon:
=SUPPRESPACE(SI E3-AUJOURDHUI();TEXTE(DATEDIF(AUJOURDHUI() E3;"y";"[>1]0"" ans"";[>]""1 an"";")&TEXTE(DATEDIF(AUJOURDHUI() E3;"ym";"[>] 0"" mois "";")&TEXTE(DATEDIF(AUJOURDHUI();E3;"md");"[>1]0"" jours"";[>]""1 jour"";");"0 jour"))
ca ne marche pas
ma 2ème question est la suivante :
Quand le décompte est en dessous de 0 an 0 mois 0 jour #NOMBRE ! est écrit dans la cellule
est-il possible de compléter la formule de sorte que 0 s'inscrive quand c'est en négatif ?
D'avance merci
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
14 juil. 2013 à 21:01
Bonjour,

un coup c'est E3, un autre coup c'est aujourd'hui et en plus je viens relire et de voir ça :
ex en C3 J'ai 25 janv 2013
en E3 j'ai 15 juillet 2013 date d'échéance
en D3 je devrai avoir le nbre de jours restants par rapport à la date du jour c'est à dire 2 jours
avec la formule si dessus j'ai 4 mois et 20 jours

Au risque de te surprendre il y a plus de 2 jours d'écart entre janvier et juillet...

Plus de réponse de ma part sans un fichier avec des explications claires et définitives sur ce que tu veux.
Déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.
Sinon la 2nde formule proposée par michel fonctionne très bien pour ce que tu avais demandé : la différence entre 2 dates.

eric
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 15/07/2013 à 08:12
Ce n'est pas MA formule ( j' en suis incapable) mais celle du grand chef Laurent Longre !

Faut lire ce qu'on t'envoie !!!
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié par Mike-31 le 14/07/2013 à 20:55
Bonsoir,

date de départ en C2, cette formule respecte les pluriels pour année et jour
si cette fonctionnalité n'est pas nécessaire, la formule peut s'alléger de façon significative

=SUPPRESPACE(SI(AUJOURDHUI()-C2;TEXTE(DATEDIF(C2;AUJOURDHUI();"y");"[>1]0"" ans "";[>]""1 an "";")&TEXTE(DATEDIF(C2;AUJOURDHUI();"ym");"[>]0"" mois "";")&SI(AUJOURDHUI()-MOIS.DECALER(C2;DATEDIF(C2;AUJOURDHUI();"m"))>1;AUJOURDHUI()-MOIS.DECALER(C2;DATEDIF(C2;AUJOURDHUI();"m"))&" jours";SI(AUJOURDHUI()-MOIS.DECALER(C2;DATEDIF(C2;AUJOURDHUI();"m"))=1;AUJOURDHUI()-MOIS.DECALER(C2;DATEDIF(C2;AUJOURDHUI();"m"))&" jour";""))))

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 1 054
15 juil. 2013 à 12:46
Bonjour à tous,
En D3
=SI(ET(E3<>"";E3<=AUJOURDHUI());"dépassé";SI(E3<>"";SI(DATEDIF(AUJOURDHUI();E3;"Y")=0;" ";(DATEDIF(AUJOURDHUI();E3;"Y")&SI(DATEDIF(AUJOURDHUI();E3;"Y")>1;" ans, ";" an, ")))&SI(DATEDIF(AUJOURDHUI();E3;"YM")=0;"";DATEDIF(AUJOURDHUI();E3;"YM")&" mois, ")&SI(DATEDIF(AUJOURDHUI();E3;"MD")=0;" ";(DATEDIF(AUJOURDHUI();E3;"MD")&SI(DATEDIF(AUJOURDHUI();E3;"MD")>1;" jours ";" jour ")));""))
Il est possible de mettre 0 à la place de " dépassé".
L' utilisation de MOIS.DECALER dans une MFC (Excel2003) impose de passer par une cellule auxiliaire F3. On pourrait aussi utiliser une référence nommée.
MOIS.DECALER est une fonction de l'utilitaire d'analyse qui doit être coché dans Outils >> Macro complémentaire.
Avec un peu de patience:
https://www.cjoint.com/?3GpmSxL4N1r
0
Bonjour Tontong
La formule que vous m'avez fournie me convient parfaitement, merci.
A tout ceux qui ont bien voulu prendre de leur temps pour m'aider à résoudre mon problème et aux autres qui font que ce site existe merci beaucoup
Cordialement
0