Bonjour,
Comment extraire la date du 3ème dimanche du mois de septembre - lundi du Jeûne fédéral suisse
Merci pour votre aide
Bonjour,
Comment extraire la date du 3ème dimanche du mois de septembre - lundi du Jeûne fédéral suisse
Merci pour votre aide
Bonjour,
Proposition par formule:
Procédé un peu basique en attendant mieux, le 3ème dimanche de septembre ne peut tomber qu'entre le 15 et le 21 du mois.
En supposant que l'année sur laquelle doit s'effectuer la recherche est en A1, la formule est:
Avec une fonction VBA:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 =SI(JOURSEM(DATE($A$1;9;15);2)=7;"15/09/"& $A$1; SI(JOURSEM(DATE($A$1;9;16);2)=7;"16/09/"& $A$1; SI(JOURSEM(DATE($A$1;9;17);2)=7;"17/09/"& $A$1; SI(JOURSEM(DATE($A$1;9;18);2)=7;"18/09/"&$A$1; SI(JOURSEM(DATE($A$1;9;19);2)=7;"19/09/"& $A$1; SI(JOURSEM(DATE($A$1;9;20);2)=7;"20/09/"& $A$1;"21/09/"& $A$1))))))
La formule devient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Function Dim_Sept(Annee As Long) As String If Application.WorksheetFunction.Weekday(DateSerial(Annee, 9, 15), 2) = 7 Then Dim_Sept = Format(DateSerial(Annee, 9, 15), "ddd dd/mm/yyyy") ElseIf Application.WorksheetFunction.Weekday(DateSerial(Annee, 9, 16), 2) = 7 Then Dim_Sept = Format(DateSerial(Annee, 9, 16), "ddd dd/mm/yyyy") ElseIf Application.WorksheetFunction.Weekday(DateSerial(Annee, 9, 17), 2) = 7 Then Dim_Sept = Format(DateSerial(Annee, 9, 17), "ddd dd/mm/yyyy") ElseIf Application.WorksheetFunction.Weekday(DateSerial(Annee, 9, 18), 2) = 7 Then Dim_Sept = Format(DateSerial(Annee, 9, 18), "ddd dd/mm/yyyy") ElseIf Application.WorksheetFunction.Weekday(DateSerial(Annee, 9, 19), 2) = 7 Then Dim_Sept = Format(DateSerial(Annee, 9, 19), "ddd dd/mm/yyyy") ElseIf Application.WorksheetFunction.Weekday(DateSerial(Annee, 9, 20), 2) = 7 Then Dim_Sept = Format(DateSerial(Annee, 9, 20), "ddd dd/mm/yyyy") Else Dim_Sept = Format(DateSerial(Annee, 9, 21), "ddd dd/mm/yyyy") End If End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part =dim_Sept(A1)
Cdlt
Il y a plus simple:
calculer le 1er dimanche du mois, et ajouter 14 jours:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub Test Dim FirstSunday as Date FirstSunday = FirstWeekDayOfMonth(DateSerial(year(Date), 9, 1), vbSunday) Dim ThirdSunday As Date ThirdSunday = DateAdd("d", 14, FirstSunday) Debug.Print ThirdSunday End Sub Public Function FirstWeekDay(myDate As Date, DayOfWeek As VbDayOfWeek) As Date Dim d As Date d = DateSerial(Year(myDate), Month(myDate), 1) Dim w As Long w = WeekDay(d, DayOfWeek) If (w <> 1) Then d = DateAdd("d", 8 - w, d) End If FirstWeekDay = d End Function
Bonjour ARTURO83,
Il y a effectivement mieux et plus concisProcédé un peu basique en attendant mieux, le 3ème dimanche de septembre ne peut tomber qu'entre le 15 et le 21 du mois.
Formule qui calcule le 3ème dimanche de la date du 1er jour du mois en cellule B3
Code : Sélectionner tout - Visualiser dans une fenêtre à part =B3-JOUR(B3)+22-JOURSEM(B3-JOUR(B3)-7)
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Bonjour
Encore plus concis avec en A1 le 1er du mois,
Stéphane
Code : Sélectionner tout - Visualiser dans une fenêtre à part A1-JOURSEM(A1;2)+21
Bonjour Stéphane,
Tu as tout à fait raison
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Super, milles merci
Encore une question
En vba, comment trouver le lundi de la semaine d'une date ?
Bonne semaine
C'est quasiment la même chose que precedement, sauf que la date de référence est la date passée en paramètre, et non le 1er du mois:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Function DayOfWeek(ByVal dt As Date, ByVal DesiredWeekDay As VbDayOfWeek) As Date Dim d As Date d = dt Dim w As Integer w = WeekDay(dt, DesiredWeekDay) If (w <> 1) Then d = DateAdd("d", 8 - w, dt) End If DayOfWeek = d End Function
Je n'ai pas tout compris, votre code donne le lundi de la semaine suivante
Ma correction donne le bon résultat, mais c'est un pansement beurk
Comment corriger le code pour obtenir la date du lundi de la semaine d'une date ?
Je vous remercie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Public Function Jour_de_la_semaine(ByVal dt As Date, ByVal DesiredWeekDay As VbDayOfWeek) As Date 'Dim Test As Date ' MsgBox DayOfWeek(ActiveCell, vbMonday) 'vbMonday pour trouver la date du lundi 'End Sub Dim d As Date Dim w As Integer d = dt w = Weekday(dt, DesiredWeekDay) ' If (w <> 1) Then d = DateAdd("d", 8 - w, dt) Jour_de_la_semaine = d ' End If If Jour_de_la_semaine <> d Then Jour_de_la_semaine = d 'si la date initiale correspond à la date recherchée Else Jour_de_la_semaine = d - 7 '-7 jours pour la semaine en cours End If End Function
Pour trouver N° de la semaine iso de la date
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 'N° semaine EURO VBA Function WeekNoIso(MyDate As Date) As Integer WeekNoIso = Evaluate("isoweeknum(" & CLng(MyDate) & ")") End Function
Bonjour,
Si c'est le lundi qui précède une date, j'avais écrit il y a cinq ans un billet sur le sujet Comment avec Excel calculer la date du lundi qui précède et c'est une formule très simple avec en A1, la date dont on cherche le lundi qui précède celle-ciComment corriger le code pour obtenir la date du lundi de la semaine d'une date ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part =A1-MOD(A1-2;7)
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Merci pour l'info, mais je cherche le code vba
>< quel est l'abruti chez Microsoft qui a décidé de faire commencer la semaine un dimanche ?
Ca décale tout ><
Extraire la date du lundi de la semaine en cours
vba
Formule
Code : Sélectionner tout - Visualiser dans une fenêtre à part La_date - (Weekday(La_date, vbMonday) + 6) + 7
Merci à tous pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part =A1-MOD(A1-2;7)
Bonjour,
Dans la cellule A1, j'ai la formule suivanteVia une formule, sans code VBA, comment afficher la date du 3ᵉ dimanche du mois de septembre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part =ANNEE(AUJOURDHUI())
Je vous remercie
Bonjour
il suffit d'adapter la fonction que le propose en #5 pour utiliser le 1er septembre comme base avec DATE(Année;9;1)
Stéphane
Code : Sélectionner tout - Visualiser dans une fenêtre à part =DATE(A1;9;1)-JOURSEM(DATE(A1;9;1);2)+21
Bonjour,
J'ai une mise en forme conditionnelle qui fonctionne avec une plage de cellule de référence pour les Ponts et fériés
J'aimerais remplacer la plage par la colonne d'un tableau, mais je n'arrive pas à trouver la syntaxe de la formule dans les mises en formes conditionnelles
Qui fonctionne avec une plage de celulle nommée
Qui beug avec une référence de tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part =NB.SI(Jours_Feries_Ponts;AD$8)>0
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part =NB.SI(TS_Feries_Vacances[Date];AD$8)>0
En fait, il faut créer un nom de plage qui a pour référence la colonne du tableau et ça fonctionne, Est-ce correct ?
=NB.SI(Plage_Feries_Vacances;AD$8)>0
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager