Problème de dates

Etienne2323

XLDnaute Impliqué
Bonjour à tous,
j'ai besoin de votre aide une fois de plus. Je cherche à écrire une fonction qui me donnerais le résultat suivant sans que ma formule mesure 1km de long. C'est possible d'optimiser l'écriture de ma formule ?

J'ai une date en A1 qui est la date d'aujourdui.
En A2, je cherche obtenir la date de fin du trimestre complété le plus proche.

Je m'explique avec un exemple. Aujourd'hui, nous sommes le 29 juillet 2009. C'est la valeur renvoyée par la cellule A1.
En A2, j'aimerais obtenir comme date le 30 juin 2009, qui est la date de fin du 2e trimestre de 2009, qui se trouve à être le dernier complété.
(NB, si nous sommes aujourd'hui le 30 juin 2009, j'aimerais que la date inscrite en A2 prenne en considération la journée actuelle, donc qu'elle me renvoie le 30 juin plutôt que le 31 mars)

Aussi, si les jours posent problème, ils ne me sont d'aucune utilité. Avec le fichier que j'utilise, qu'il soit inscrit le 1er juin 2009 ou le 30 juin 2009 en A2, cela ne fait aucune différence pour moi. Ce que j'ai besoin, c'est le bon mois.

Ma meilleure solution jusqu'à présent :
=SI(OU(MOD(MOIS(A1);3)<>1;MOD(MOIS(A1);3)<>2;MOD(MOIS(A1);3)<>3;MOD(MOIS(A1);3)<>4);DATE(ANNEE(A1);ARRONDI.INF(MOIS(A1)/3;0)*3;1);DATE(ANNEE(A1);MOIS(A1);1))

Vous avez une meilleure solution ?

Merci beaucoup de votre aide,

Cordialement,

Étienne
 
Dernière édition:

vador

XLDnaute Nouveau
Re : Problème de dates

Je suppose que tu peux decouper en deux parties :

- première partie : quel trimestre sommes nous ?

=ENT(MOIS(ma_date)-1)/3)+1

- premier jour du trimestre en cours :
=DATE(ANNEE(ma_date);(num_trimestre-1)*3+1;1)

et pour avoir le dernier jour du trimestre précédent ... faire -1

En revanche, ca ne marche pas pour ton "30 juin" : en effet, si tu es le 30, tu considères que le trimestre est fini ? dans ce cas, remplace mois(ma_date) par mois(ma_date+1)

Modif juste pour donner la formule définitive :
=DATE(ANNEE(A1);(ENT((MOIS(A1+1)-1)/3+1)-1)*3+1;1)-1
 
Dernière édition:

Etienne2323

XLDnaute Impliqué
Re : Problème de dates

Salut Vador, le forum,

merci pour ta réponse rapide. J'aime la formulation. Par contre, fais un essai avec des dates de fin d'année. Par exemple : 2008-12-31
L'année retournée avec ta formule est 2007 plutôt que 2008. Comment régler le problème ?

Cordialement,

Étienne
 

Etienne2323

XLDnaute Impliqué
Re : Problème de dates

Salut Jiheme,
merci pour la réponse également. Par contre, dans la boîte où je travaille, il y a plusieurs utilisateurs de mon fichier et ce ne sont souvent pas les mêmes. Alors, pour les macros complémentaires, la c'est plus compliqué un peu. Par contre, merci pour la formule, elle fonctionne à merveille. Vous connaissez une alternative sur le bon vieux Excel de base ?

Merci encore,

Étienne
 

vador

XLDnaute Nouveau
Re : Problème de dates

oops, je suis allé trop vite en fait :)

Ce qui nous embete, c'est que tu considères que le jour en cours est fini (en particulier le dernier jour du trimestre).

Du coup, je propose :
=DATE(ANNEE(A1+1);(ENT((MOIS(A1+1)-1)/3+1)-1)*3+1;1)-1

et en simplifiant les +1 -1 blabla :
=DATE(ANNEE(A1+1);ENT((MOIS(A1+1)-1)/3)*3+1;1)-1

(le A1+1 : dans le cas du dernier jour de l'année, ca décale l'année. Sinon, ca ne change rien).

Pour note : la solution de jiheme pose aussi des soucis (par exemple pour le 20/12/2009 donne 31/12/2009). Il faudrait plutot (avec des +1 pas beaux pour les fins de mois)

=FIN.MOIS(A1+1;-(MOD(MOIS(A1+1)-1;3)+1))
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 948
Membres
103 682
dernier inscrit
Thomas23