Formule pour définir l'existence des 29 février

  • Initiateur de la discussion Initiateur de la discussion marmotte18
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marmotte18

XLDnaute Impliqué
Bonjour,

Supposons qu'en A2, j'ai l'exercice (4 caractères à saisir). Le nom donné à cette cellule est également exercice.

Quelle formule (non VBA) faudrait-il mettre, pour définir l'existence ou la non existence du 29 février en fonction de l'exercice saisi ?

  • Si le 29 février n'existe pas, il faut ramener ""
  • Si le 29 février existe, il faut ramener la date complète (lundi 29 février 19.. ou 20..)
 
Re : Formule pour définir l'existence des 29 février

re,

Marmotte,

La formule proposée par Chris tout comme celle que je t'ai proposée, ne font qu'indiquer si l'année est bisextile ou non.

Pour répondre plus précisément à ta question de ton premier post, au choix :

=SI(ET(MOD(exercice;4)=0;OU(MOD(exercice;100)<>0;MOD(exercice;400)=0));("29/02/"&exercice)*1;"")

ou

=SI(JOUR(DATE(exercice;2;29))=29;("29/02/"&exercice)*1;"")

Cellule au format jjjj jj/mm/aaaa


Exercice étant un nombre à 4 chiffres.

@+
 
Re : Formule pour définir l'existence des 29 février

marmotte18 à dit:
Bonjour wilfried_42,

tu as dit :



Ta formule, qu'on la fasse précédé d'un signe "=" ou non, amène un code erreur ou un texte

desolé de te contredire, il n'y a aucun text, la formule sort 1 ou 0, c'est une formule de type bollean . 1 = vrai, 0 = Faux

fichier en exemple
 

Pièces jointes

Re : Formule pour définir l'existence des 29 février

Réponse à Tibo,

=SI(ET(MOD(exercice;4)=0;OU(MOD(exercice;100)<>0;M OD(exercice;400)=0));("29/02/"&exercice)*1;"")

n'amène pas le mercredi 29 février 1900 comme la formule suivante :

=SI(JOUR(DATE(Exercice;2;29))=29;DATE(Exercice;2;29);"")

Celle-ci me paraissait correcte mais j'ai des soucis avec elle :

Quand je tape exercice=1700, cela me ramène mardi 29 février 3600 alors que celle d'en haut ne me ramène rien.

J'ai la tête qui tourne ! Je ne sais pas en définitive qu'elle est la bonne formule !
 
Re : Formule pour définir l'existence des 29 février

rere,

Concernant l'année 1700, Excel ne sait pas gérer les années antérieures à 1900. D'où la réponse non cohérente qu'il te donne.

Finalement, la meilleure formule est celle de Chris, puis qu'elle teste l'année avant de donner une date.

Dans ma formule, je teste directement une date, avec dans ton exemple, une année dont Excel ne veut pas (ou ne sait pas traiter).

Je pense qu'on a fait le tour de la question.

Voilou

@+
 
Re : Formule pour définir l'existence des 29 février

Re,

Citation:
=SI(ET(MOD(exercice;4)=0;OU(MOD(exercice;100)<>0;M OD(exercice;400)=0));("29/02/"&exercice)*1;"")


n'amène pas le mercredi 29 février 1900
Inverse les conditions :

=SI(ET(MOD(exercice;4)=0;OU(MOD(exercice;100)<>0;M OD(exercice;400)=0));"";("29/02/"&exercice)*1)

A+

Edition : ne pas tenir compte de ce message : un zop de plus
 
Dernière édition:
Re : Formule pour définir l'existence des 29 février

Tibo à dit:
Salut Pascal,

Petite précision quant aux années bisextiles :

Les conditions pour avoir une année bisextile sont les suivantes:

- année divisible par 4 : année bisextile'
- exception : année divisible par 100 : année non bisextile
- exception de l'exception : année divisible par 400 : année bisextile

2000 est bisextile, 1900 ne l'était pas, 2100 ne le sera pas non plus, etc...

@+

comprends pas, Tibo dit 1900 ne l'etait pas et excel accepte 29/02/1900 😕
 
Re : Formule pour définir l'existence des 29 février

re

etant du genre obstiné , jai fini par accoucher de

=SI(ESTERREUR(DATEVAL("29/02/"&A2));"";DATEVAL("29/02/"&A2))

inspiré des precedents

et merci pour le rappel (je ne me souvenais plus du modulo 400)
 
Re : Formule pour définir l'existence des 29 février

Re,

Lord Nelson avait recensé quelques erreurs ou omissions XL :

Tu es très optimiste !
Quelques fonctions d'Excel sont perfectibles et il me semble que MOD en fait partie. Sinon comment expliquer que MOD d'Excel donne des résulats différents du MOD de VBA ?
Les règles mathématiques sont pourtant les mêmes dans les deux environnements !

Voici quelques autres exemples de pièges à éviter :

Pas de résultat de calcul d'heures négatives sauf à appliquer le calendrier 1904.
Pas de date avant le 1er janvier 1900 (VBA calcule les dates à partir du 1er janvier 100).
Le calendrier par défaut d'Excel donne un 29/2/1900 qui n'a jamais existé.
Les fonctions TROUVE et CHERCHE ne renvoient pas 0 en cas d'absence de la chaîne mais un message d'erreur.
Le numéro de semaine de NO.SEMAINE correspond au calendrier américain même quand on précise que nous commençons la semaine le lundi.
Le paramètre par défaut des fonctions de recherche RECHERCHEV, RECHERCHEH et EQUIV n'est pas celui de la concordance exacte ce qui peut donner lieu à des résultats trompeurs...

Mais mon but n'est pas de dresser un réquisitoire, j'aime beaucoup Excel et il m'est très utile. On doit néanmoins rester vigilant quant à l'interprétation de certains résultats.

A+
Horatio
 
Re : Formule pour définir l'existence des 29 février

Bonjour tout le monde,

J'ai fait un fichier Excel de toutes les années depuis 1900 à 4529 et par des jeux de filtres automatiques, j'ai repéré les années bissextiles avec les règles fournies (divisible par 4, exception divisible par 100, exception de l'exception divisible par 400)

En définitive, mon choix pour la formule correcte est :

=SI(((MOD(Exercice;4)=0)*(MOD(Exercice;100)<>0)) + (MOD(Exercice;400)=0)=0;"";DATE(Exercice;2;29))

C'est la seule que j'ai repérée qui donne un résultat exact pour 1900 qui n'est pas une année bissextile

Encore une fois un grand merci pour votre participation et votre enthousiasme !
 
Re : Formule pour définir l'existence des 29 février

Bonjour,

Un peu plus court :
=SI((MOD(exercice;4)=0)*MOD(exercice;100)+(MOD(exercice;400)=0);("3/"&exercice)-1;"")

=("3/"&exercice)-1 renvoie la veille du 1er jour de mars
Idem :
=("1/3/"&exercice)-1
 
Re : Formule pour définir l'existence des 29 février

re: bonjour monique

il y a quand meme quelque chose qui me chagrinne, avec ce 29 fevrier 1900
qui n'existe pas sauf de excel.

les dates sont calculées en fontion du nombre de jours depuis le 01/01/1900 (en général)
si excel, de par son bug du 29/02/1900, decompte un jour de plusque le nombre reellement ecoulé, comment peut il maintenant trouver le joursem
ou bien joursem serait bugger aussi et en fonction des parametres on l'ajusterait à nos besoins
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour