le premier dimanche du mois, reprendre la date

jmst

XLDnaute Junior
Bonjour,
je cherche une formule qui serait:
"si la date est inférieur ou égal au le 1er dimanche du mois en cours, afficher le 1er dimanche du mois en cours, si la date est supérieur au 1er dimanche du mois en cours, afficher le 1er dimanche du mois suivant"



Il y a une formule:
si la date n'est pas le 1er du mois , arrondir la date au 1er du mois suivant sinon reprendre la date, mais je n'arrive pas à la modifier pour le 1er dimanche


=SI(AUJOURDHUI()=DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+0;1);AUJOURDHUI();DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+1;1))

La progression souhaitée:

sam 02.janv.2016--> dim 03.janv.2016
dim 03.janv.2016--> dim 03.janv.2016
lun 04.janv.2016--> dim 07.févr.2016

sam 06.févr.2016--> dim 07.févr.2016
dim 07.févr.2016--> dim 07.févr.2016
lun 08.févr.2016--> dim 06.mars.2016

sam 05.mars.2016--> dim 06.mars.2016
dim 06.mars.2016--> dim 06.mars.2016
lun 07.mars.2016--> dim 03.avr.2016

etc


Merci pour votre aide

Les meilleurs réponse

Re : le premier dimanche du mois, reprendre la date
Citation Envoyé par Victor21
Bonjour à tous.

"=SI(JOUR(A1+7-JOURSEM(A1;2))<=7;A1+7-JOURSEM(A1;2);DATE(ANNEE(A1);MOIS(A1)+1;1)+7-
JOURSEM(DATE(ANNEE(A1);MOIS(A1)+1;1);2))"


130 car. avec $A1, 122 car. avec A1
Vous pouvez également utiliser des noms définis pour les termes récurrents.

Victor21
la formule est correct et une performance à relever: de 1900 au 5.12.9999
Hors en dessous du 1 mars 1900 (voir page 4 )
Avec si: A1 122 caractères et avec AUJOURDHUI() 202 caractères !

Une autre aussi performante

De Tontong - 3 mars 2016 à 16:57
avec un petit effort:
=SI(JOUR(A1+7-JOURSEM(A1;2))<=7;A1+7-JOURSEM(A1;2);FIN.MOIS(A1;0)+8-JOURSEM(FIN.MOIS(A1;0)+1;2))

Et une autre aussi performante

la formule est correct et une performance à relever: de 1900 au 9999
Hors en dessous du 1 mars 1900 et depuis le 6.12.9999 où elle conserve la date du 5.12.9999 à la place de donner #NOMBRE! puisque EXCEL ne peut pas afficher: Dimanche 2 janvier 10000

de job75 Une formule dérivée de la formule de Monique :
164 caractères =-RECHERCHE(-AUJOURDHUI();JOUR(FIN.MOIS(AUJOURDHUI();{1;0}))-FIN.MOIS(AUJOURDHUI();{1;0})-8+JOURSEM(FIN.MOIS(AUJOURDHUI();{1;0})-JOUR(FIN.MOIS(AUJOURDHUI();{1;0}))))
114 caractères =-RECHERCHE(-a3;JOUR(FIN.MOIS(a3;{1;0}))-FIN.MOIS(a3;{1;0})-8+JOURSEM(FIN.MOIS(a3;{1;0})-JOUR(FIN.MOIS(a3;{1;0}))))

Le FUN de job75

La solution de tontong est de loin la meilleure.


Mais en nombre de caractères on peut l'améliorer en utilisant des matrices :

Code :
=-RECHERCHE(-AUJOURDHUI();JOURSEM(FIN.MOIS(AUJOURDHUI();{0;-1})+1;2)-FIN.MOIS(AUJOURDHUI();{0;-1})-8)
115 octets - 101 caractères.

Code :
=-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-FIN.MOIS(A3;{0;-1})-8)
117 octets - 71 caractères.


Bravo et magnifique performance de ces trois internautes

PS le faite de remplacer A1 ou A3 par AUJOURDHUI() est de la rendre autonome dans un calendrier:D
 
Dernière édition:

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Bonjour,
je cherche une formule qui serait:
si la date n'est pas le 1er dimanche du mois, arrondir la date au 1er dimanche du mois suivant sinon reprendre la date.

Merci à tous. Sur la proposition de vgendron, j'ai pris deux cellules et j'arrive à 177 caractères

=SI($A$7<=$A$7-JOUR($A$7)+8-JOURSEM($A$7-JOUR($A$7)-7);$A$7-JOUR($A$7)+8-JOURSEM($A$7-JOUR($A$7)-7);DATE(ANNEE($A$7);MOIS($A$7)+1;1)+6-MOD(DATE(ANNEE($A$7);MOIS($A$7)+1;1)+5;7))

contre 198 pour celle de vgendron

=SI(JOUR($A$7+7-JOURSEM($A$7;2))<=7;$A$7+7-JOURSEM($A$7;2);DATE(ANNEE(MOIS.DECALER($A$7;1));MOIS(MOIS.DECALER($A$7;1));1)+7-JOURSEM(DATE(ANNEE(MOIS.DECALER($A$7;1));MOIS(MOIS.DECALER($A$7;1));1);2))

Si quelqu'un fait plus court, je suis preneur, le but est de remplacer $A$7 par AUJOURDHUI() pour quelle soit autonome

Bonne recherche
 

JHA

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonjour à tous,

A essayer:
Code:
=SI(AUJOURDHUI()>TEXTE(AUJOURDHUI();"m/aaa")-MOD(TEXTE(AUJOURDHUI();"m/aaa")-3;7)+5;TEXTE(MOIS.DECALER(AUJOURDHUI();1);"m/aaa")-MOD(TEXTE(MOIS.DECALER(AUJOURDHUI();1);"m/aaa")-3;7)+5;TEXTE(AUJOURDHUI();"m/aaa")-MOD(TEXTE(AUJOURDHUI();"m/aaa")-3;7)+5)

JHA
 

Jocelyn

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonjour le Forum,
Bonjour tout le monde (beaucoup trops pour tous les citer sans en oublier)

une formule de 245 caractères qui utilise aujourdhui() à la place de A1 et qui me semble fonctionner

Code:
=SI(AUJOURDHUI()<=AUJOURDHUI()-JOUR(AUJOURDHUI())+8-JOURSEM(AUJOURDHUI()-JOUR(AUJOURDHUI())-7);AUJOURDHUI()-JOUR(AUJOURDHUI())+8-JOURSEM(AUJOURDHUI()-JOUR(AUJOURDHUI())-7);(FIN.MOIS(AUJOURDHUI();0)+1)-1+8-JOURSEM(FIN.MOIS(AUJOURDHUI();0)+1-1-7))

et avec 235 caractères après je n'ai pas mieux

Code:
=SI(AUJOURDHUI()<=AUJOURDHUI()-JOUR(AUJOURDHUI())+8-JOURSEM(AUJOURDHUI()-JOUR(AUJOURDHUI())-7);AUJOURDHUI()-JOUR(AUJOURDHUI())+8-JOURSEM(AUJOURDHUI()-JOUR(AUJOURDHUI())-7);FIN.MOIS(AUJOURDHUI();0)+8-JOURSEM(FIN.MOIS(AUJOURDHUI();0)-7))

Cordialement
 
Dernière édition:

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Bonjour JHA, malheureusement elle ne fonctionne pas en février

Pour rappel une partie de la progression

06.02.2016 -> dim 07 février 2016
07.02.2016 -> dim 07 février 2016
08.02.2016 -> dim 06 mars 2016
09.02.2016 -> dim 06 mars 2016
05.03.2016 -> dim 06 mars 2016
06.03.2016 -> dim 06 mars 2016
07.03.2016 -> dim 03 avril 2016

Pour faire les essais, il remplacer AUJOURDHUI() par une cellule variable par exemple A1
 

ROGER2327

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonjour à tous.


Je suis moi aussi parti sur l'idée des formules nommées.


Bonne soirée.


ℝOGER2327
#8220


Dimanche 8 Pédale 143 (La machine à inspirer l’amour - fête Suprême Tierce)
12 Ventôse An CCXXIV, 7,3256h - orme
2016-W09-3T17:34:53Z
 

Pièces jointes

  • Prochain premier dimanche du mois.xlsx
    63.7 KB · Affichages: 43

GerardCalc

XLDnaute Occasionnel
Re : le premier dimanche du mois, reprendre la date

Bonsoir,

Une autre formule :

Code:
=MOIS.DECALER(A1;1*(JOUR(A1)>JOURSEM(A1;2)))-JOUR(A1)+8-JOURSEM(FIN.MOIS(A1;(JOUR(A1)>JOURSEM(A1;2))-1)
A+
 
Dernière modification par un modérateur:

ROGER2327

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Suite...


... si on ne s'intéresse pas qu'au dimanche ou si on veut choisir une autre date de référence que la date courante.​


Bonne journée.


ℝOGER2327
#8221


Lundi 9 Pédale 143 (*Saint Remezy, évêque in partibus - fête Suprême Quarte)
13 Ventôse An CCXXIV, 1,2628h - fumeterre
2016-W09-4T03:01:51Z
 

Pièces jointes

  • Prochain premier dimanche du mois-1.xlsx
    35.8 KB · Affichages: 51

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Bonjour à tous,

A essayer:
Code:
=SI(AUJOURDHUI()>TEXTE(AUJOURDHUI();"m/aaa")-MOD(TEXTE(AUJOURDHUI();"m/aaa")-3;7)+5;TEXTE(MOIS.DECALER(AUJOURDHUI();1);"m/aaa")-MOD(TEXTE(MOIS.DECALER(AUJOURDHUI();1);"m/aaa")-3;7)+5;TEXTE(AUJOURDHUI();"m/aaa")-MOD(TEXTE(AUJOURDHUI();"m/aaa")-3;7)+5)

JHA

Bonjour JHA, j'ai répondu négativement hier et mon message à disparut.

Bonjour JHA, malheureusement elle n'est pas adaptée à ma requête
La formule n'est juste en février
voici la progression que j'aimerais

06.02.2016 -> dim 07 février 2016
07.02.2016 -> dim 07 février 2016
08.02.2016 -> dim 06 mars 2016
09.02.2016 -> dim 06 mars 2016
05.03.2016 -> dim 06 mars 2016
06.03.2016 -> dim 06 mars 2016
07.03.2016 -> dim 03 avril 2016
 

JHA

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonjour JMST,

J'ai bien lu ton message hier et je suis désolé que ma proposition ne corresponde pas à ta demande mais tu as eu d'autres réponses de Jocelyn:), Victor21:), Roger2327:) qui donnent le résultat escompté, c'est pour cela que je n'ai pas surenchéri.

JHA
 

job75

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonjour le fil, le forum,

Je reviens sur la question des 255 caractères qui m'intrigue.

Chez moi sur Excel 2013 la copie des cellules du fichier joint ne pose pas de problème, et chez vous ?

Je crois quand même me rappeler que sur des versions antérieures j'avais eu des problèmes.

Bonne journée.
 

Pièces jointes

  • Copier formule longue(1).xlsm
    17.4 KB · Affichages: 39

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Bonsoir,

Une autre formule :

Code:
=MOIS.DECALER(A1;1*(JOUR(A1)>JOURSEM(A1;2)))-JOUR(A1)+8-JOURSEM(FIN.MOIS(A1;(JOUR(A1)>JOURSEM(A1;2))-1)
A+

Bonjour GerardCalc, CORRECTIF
la formule ne convient pas -> voir page suivant

Je l’intègre dans un calendrier Hirji (pas avec des cellules nommées)

Pour info excelabo est fermer pour cause de piratage.

j’ai construit mon calendrier Hijri avec cette formule financière
b = a * ( 1+ ( x * ( c% )))
x = (( b / a ) -1 ) / ( c% )


Adaptée pour trouver le 1 ramadan (9eme mois) année xxxx(237 eme jour Hijri) dans une année grégorienne choisie= $A$2.

=ENT(3.99999999999999*(1+(ENT(((DATE($A$2+N("<---année cherchée");1;1) /3.99999999999999) -1) /88.5916666666669)+N("+ un/deux/cycle(s) lunaire--->")+1)*88.5916666666669))+N("+/- zéro/un jour LIEUX--->")+0+N("Formules: b = a * ( 1+ ( x * ( c% ))) <> x = (( b / a ) -1 ) / ( c% ) Plage 1900-9999 237eme jour HIJRI")

Pour trouver l’année Hijri

= (ENT((( DATE($A$2;1;1) / 3.99999999999999 ) -1) / (88.5916666666669))+N("+ un/deux/cycle(s) lunaire--->")+1)+1317

Si bissextille ($V$9= cellulle de l'année Hijri)

=SI(OU(2=MOD($V$9;30);5=MOD($V$9;30);7=MOD($V$9;30 );10=MOD($V$9;30);13=MOD($V$9;30);16=MOD($V$9;30); 18=MOD($V$9;30);21=MOD($V$9;30);24=MOD($V$9;30);26 =MOD($V$9;30);29=MOD($V$9;30)+N("mod 30 égale à 2, 5, 7, 10, 13, 16, 18, 21,24, 26, ou 29 = Année bissextile."));"Année bissextile";"Année commune")

Exemple pour une date de fête ou un autre jour que le 1.9.xxxx Hijri

=ENT(3.99999999999999*(1+(ENT(((DATE($A$2+N("<---année cherchée");1;1) /3.99999999999999) -1) /88.5916666666669)+N("+ un/deux/cycle(s) lunaire--->")+$AA$47)*88.5916666666669))+N("DATE dans le mois par ex.: le 16 du mois= +15 ----->")+15+N("Choix du 1 du mois par ex -236(=valeur de CD2)--->")+-236+N("+/- zéro/un jour LIEUX=$D$2--->")+$E$2+N("Principe le 1 Ramadan = 237eme jour HIJRI, donc -236 = le 1 Muharram + par ex +15 = le 16 du Muharram ")

Comme il peut y a voir deux "ramadan" dans la même année grégorienne, (par ex.:1900 ou 2030) il faut corriger) +N("+ un/deux/cycle(s) lunaire--->")+$AA$47

La formule fonctionne de 1900 à 9999 (sauf le jour semaine de 1900 et le 29.02.1900 où il faut apporté une correction).

Voici une bonne base pour faire votre calendrier Hijri avec Excel. : - )
 
Dernière édition:

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Bonjour le fil, le forum,

Je reviens sur la question des 255 caractères qui m'intrigue.

Chez moi sur Excel 2013 la copie des cellules du fichier joint ne pose pas de problème, et chez vous ?

Je crois quand même me rappeler que sur des versions antérieures j'avais eu des problèmes.

Bonne journée.

Juste, excel 2003 plante avec plus de 255 caractères depuis 2007, c'est bon, mais je n'aime pas dépasser les 255
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 293
Membres
103 171
dernier inscrit
clemm