Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Déterminer la date du premier lundi de septembre

Aloha

XLDnaute Accro
Bonjour,

Comment puis-je déterminer, moyennant une formule, la date du 1er lundi de septembre.
J'ai une colonne avec toutes les dates de l'année:U2:U367

Merci pour toute aide

Aloha
 

LPandre

XLDnaute Impliqué
Re : Déterminer la date du premier lundi de septembre

Bonjour

Bebere, pourais tu svp m'expliquer ta formule pour que je puisse la transposer à des recherche de mardi, mercredi, etc.

Par avance merci.
 

Bebere

XLDnaute Barbatruc
Re : Déterminer la date du premier lundi de septembre

Aloha,cette formule est tirée de DatesetHeures_CMC.zip que tu peux télécharger içi
si je trouve une bonne explication je te l'envoye,sinon attendre un ou une spécialiste en dates
à bientôt
 

pierrejean

XLDnaute Barbatruc
Re : Déterminer la date du premier lundi de septembre

bonjour Aloha

Salut Bebere

Salut LPandre

Pas plus foutu que les autres pour expliquer !

par contre pour adapter : voir fichier
 

Pièces jointes

  • premierdumois.zip
    2.1 KB · Affichages: 125

LPandre

XLDnaute Impliqué
Re : Déterminer la date du premier lundi de septembre

Re :

merci PierreJean,

Pour ce que j'en comprends, il retire de la date le reste de la date -3 (alors là... va savoir pourquoi) divisé par 7 (je présume que c'est lié aux 7 jours de la semaine mais...) et il ajoute de 0 à 6 selon mardi ...etc.
De là à penser que pour Excel la semaine commence le mardi ??

Bref je suis très loin d'avoir commencer à comprendre !

@+
 

Magic_Doctor

XLDnaute Barbatruc
Re : Déterminer la date du premier lundi de septembre

Bonjour Aloha

Voici une fonction que j'avais concoctée pour des besoins personnels et qui, peut-être, résoudra ton problème.

Function DateJourSemaine(Année, Mois, JourSemaine, RangJourSemaine, AuDelaMois) As String
'Fonction grabada el 27/06/2005 por Magic_Doctor

'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Année = année de la recherche

'Mois = mois de la recherche

'JourSemaine = le jour de la semaine que l'on recherche :
'Dimanche=1 / Lundi=2 / Mardi=3 / Mercredi=4 / Jeudi=5 / Vendredi=6 / Samedi=7

'RangJourSemaine = place du jour de la semaine dans le mois (ou au-delà)
'(par exemple : 3ème Lundi (=2) de Septembre 2005 = "15/09/2005").

'AuDelaMois = possibilité de trouver une date au-delà du Mois.
'Si AuDelaMois=0 et si RangJourSemaine dépasse le Mois, alors on obtiendra la date
'où le jour de la semaine recherché apparaît pour la dernière fois dans le Mois
'(par exemple : dernier Dimanche d'Août 2005 = "28/08/2005").
'Si AuDelaMois=1 et si RangJourSemaine dépasse le Mois, alors on obtiendra la date
'où le jour de la semaine recherché apparaît à la "RangJourSemaine"ème position après
'le début de Mois (par exemple : 18ème Jeudi après le 1er Mars 2005 = "30/06/2005").
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Dim DateDébutMois, j1, j2, r1, r2, DateCherchée, i As Byte

DateDébutMois = CDate("1/" & Mois & "/" & Année)
j1 = Weekday(DateDébutMois)

If j1 >= JourSemaine Then
j2 = JourSemaine
Else
j2 = 0
End If

If j1 < JourSemaine Then
r1 = 7 - JourSemaine
Else
r1 = 0
End If

If j1 = JourSemaine Then
r2 = Abs(7 - 7 * RangJourSemaine)
Else
r2 = 7 * RangJourSemaine
End If

DateCherchée = DateDébutMois + j2 - j1 - r1 + r2

If AuDelaMois = 0 Then
If Month(DateCherchée) > Month(DateDébutMois) Then
Do
For i = 1 To 6
If j1 = JourSemaine Then
r2 = Abs(7 - 7 * i)
Else
r2 = 7 * i
End If
DateCherchée = DateDébutMois + j2 - j1 - r1 + r2
Next i
Loop Until Month(DateCherchée) > Month(DateDébutMois)
DateCherchée = DateCherchée - 14
End If
End If
DateJourSemaine = DateCherchée
End Function
 

Discussions similaires

Réponses
2
Affichages
144
Réponses
2
Affichages
145
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…