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 GerardCalc, magnifique, elle fait exactement ce que je désire (2016).
Il me reste a tester de 1900-9999.

Parlé trop vite, la formule plante aux dates
... Date..............exact/juste.............FAUX
30.01.2016 dim 07.02.2016 sam 06.02.2016
31.01.2016 dim 07.02.2016 ven 05.02.2016
31.03.2016 dim 03.04.2016 sam 02.04.2016
31.05.2016 dim 05.06.2016 sam 04.06.2016
31.08.2016 dim 04.09.2016 sam 03.09.2016
31.10.2016 dim 06.11.2016 sam 05.11.2016

Sniff
 

jmst

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

Bonjour à tous.

A tester : "=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.


BRAVO Victor21
la formule est correct et une performance à relever: de 1900 à 9999

Avec si: A1 122 caractères et avec AUJOURDHUI() 202 caractères !
 

Modeste geedee

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

Bonsour®
BRAVO Victor21
Avec si: A1 122 caractères et avec AUJOURDHUI() 202 caractères !
:p
comme l'avait dit : Salut Patrick©
en utilisant un nom défini pour Aujourdhui() = J
on passe à 113 caractères
=SI(JOUR(J+7-JOURSEM(J;2))<=7;J+7-JOURSEM(J;2);DATE(ANNEE(J);MOIS(J)+1;1)+7-JOURSEM(DATE(ANNEE(J);MOIS(J)+1;1);2))

;)
 

ROGER2327

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

Bonjour à tous.


(...)
BRAVO Victor21
la formule est correct et une performance à relever: de 1900 à 9999
(...)
Je m'associe à jmst pour féliciter Victor21 .

Une remarque cependant : la formule n'est valable qu'à partir du mardi 6 février 1900.


Bonne journée.

ℝOGER2327
#8222


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

Victor21

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

Re,

Je ne me souviens plus : Le 1/1/1900, on était dimanche ou lundi ?
Attention: pour les plus jeunes qui y arriveront : ça plante à/ c du 5/12/9999...
 

Pièces jointes

  • dimanche.xls
    89 KB · Affichages: 41
  • dimanche.xls
    89 KB · Affichages: 46

ROGER2327

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

Re...


Re,

Je ne me souviens plus : Le 1/1/1900, on était dimanche ou lundi ?
(...)
J'y étais : c'était un lundi.​


(...)
Attention: pour les plus jeunes qui y arriveront : ça plante à/ c du 5/12/9999...
M'en fous, j'y serai pas. En tout cas, bravo pour la solution !​


ℝOGER2327
#8223


Lundi 9 Pédale 143 (*Saint Remezy, évêque in partibus - fête Suprême Quarte)
13 Ventôse An CCXXIV, 5,1487h - fumeterre
2016-W09-4T12:21:24Z
 

Victor21

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

Re,

Un problème toujours pas réglé : la date longue du 1/1/1900 renvoie "dimanche 1 janvier 1900"
et le 29/2/1900 est toujours accepté (Excel 2010). Après cette date, ça va mieux.

Solution : un si() pour défalquer un jour avant le 1/3/1900, et pour renvoyer une erreur le 29/2/1900.
Mais que fait donc Billy !
 

Si...

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

Salut
...M'en fous, j'y serai pas.

[Clin d’œil] de quelqu’un qui est réfractaire aux dates mais pas à l’eau qui coule sous les Ponts

N’es-tu donc pas de ces Verts qui militent pour préserver l’avenir de tous, petits-enfants compris ?

Tu ne crois donc pas à la cryogénisation ? Il y a pourtant des personnes qui demandent à de grosses têtes de trouver des solutions de sauvegardes et de récupérations en temps voulu* sans altération d’aucune sorte (sans erreur quoi).

*quand ce sera au point, tu pourras même en choisir le jour mais attention, hors religions et Ponts !
Donc pas le Vendredi, le Samedi, le Dimanche, le Lundi de Pentecôte, le Mardi Gras ni le Mercredi des Cendres et le Jeudi de l’Ascension.
[/;)]

Désolé si… ne peut rien faire et bonne continuation dans vos recherches
 

jmst

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

Re,

Je ne me souviens plus : Le 1/1/1900, on était dimanche ou lundi ?

Oui un LUNDI, les dates en dessous du 1 mars 1900, le jour semaine est faux, ainsi que les calculs puisqu'il y a le 29 fevrier 1900 en trop

Excel et l'année 1900

Si nous appliquons un format personnalisé afin d'afficher le jour du 1er janvier 1900, Excel affichera dimanche 1er janvier 1900.
En réalité, le 1er janvier 1900 était un lundi.
On pourrait penser que l'ensemble des dates affichées sous ce format sera faux. En fait, Excel commet une seconde erreur qui va permettre, à partir du 1er mars 1900, de rétablir la vérité.
En effet, Excel affiche la date du 29 février 1900 qui n'existait pas.
L'une de ces deux erreurs a-t-elle été voulu par les programmeurs de Microsoft pour corriger l'autres ? cela est possible et sans doute impossible à corriger puisque la version 2007 affiche toujours le 29 février 1900.
On retiendra donc que les jours proposés jusqu'au 1er mars 1900 ne sont pas exacts.

SOURCE-> La gestion des dates dans Excel

Attention: pour les plus jeunes qui y arriveront : ça plante à/ c du 5/12/9999...

ça plante à/ c du 5/12/9999.. oui parce que le dimanche suivant est le Dimanche 2 janvier 10000

vendredi 31 décembre 9999
samedi 1 janvier 10000
Dimanche 2 janvier 10000

et excel s'arrête le vendredi 31 décembre 9999

Bravo pour ta formule
 
Dernière édition:

job75

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

Re,

L'une de ces deux erreurs a-t-elle été voulu par les programmeurs de Microsoft pour corriger l'autres ?
.

C'est un grand classique des dates sur Excel.

Microsoft a expliqué que dans le calendrier 1900 il a créé le 29/02/1900 pour être compatible avec Lotus.

Ceci dès sa création je crois.

A+
 

Victor21

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

Re,

O[...]L'une de ces deux erreurs a-t-elle été voulu par les programmeurs de Microsoft pour corriger l'autres ?
ça plante à/ c du 5/12/9999.. oui parce que le dimanche suivant est le Dimanche 2 janvier 10000
[...]
Oui, et la réponse était dans le lien de mon précédent post, mais ...Qui utilise encore Lotus1-2-3 ?

Edit : Désolé, Gérard : je n'avais pas rafraîchi...
 
Dernière édition:

Modeste geedee

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

Bonsour®
a noter que VBA ne fait pas cette erreur ... :eek:

Code:
Sub toto()
Dim i As Integer
For i = -20 To 64
MsgBox Format(i, "ddd d mmmm yyyy")
Next
End Sub

Les variables de type Date sont stockées sous la forme de nombres à virgule flottante de 64 bits (8 octets) IEEE représentant des dates comprises entre le 1er janvier 100 et le 31 décembre 9999, et des heures allant de 0:00:00 à 23:59:59. Toute valeur de littéral date peut être attribuée à une variable de type Date. Les littéraux date doivent être délimités par le signe #, par exemple #January 1, 1993# ou #1 Jan 93#.

Les variables de type Date affichent les dates au format de date abrégé reconnu par votre ordinateur. Les heures s'affichent au format horaire (plage de 12 ou 24 heures) défini dans votre ordinateur.

Lorsque d'autres types de données numériques sont convertis en données de type Date, les valeurs situées à gauche du séparateur décimal représentent la date, tandis que celles situées à droite correspondent à l'heure. Minuit est représenté par 0 et midi par 0,5. Les nombres entiers négatifs représentent des dates antérieures au 30 décembre 1899.
 

jmst

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

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))


Bonjour à tous, la compétition arrive à sa fin (j'sais pas) mais,

jmst1 - 3 mars 2016 à 18:44
BRAVO tontong, 1 er avec tous les records, Victor21 2éme

la formule est correct et une performance à relever: de 1900 à 9999
Hors en dessous du 1 mars 1900
Avec si: A1 95 caractères et avec AUJOURDHUI() 155 caractères !

Magnifique performance de ces deux internautes
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 179
Membres
112 677
dernier inscrit
Justine11