Microsoft 365 Date aléatoire

Andre51

XLDnaute Nouveau
Bonjour à tous,
j'aimerais connaître la formule excel me permettant de trouver le jour de la fête des mères qui se fête chaque dernier dimanche de mai (sauf si elle tombe le jour de la pentecôte, dans ce cas elle se fête le dimanche suivant), ainsi que la fête des pères qui se fête le 3e dimanche de juin.
Merci d'avance à toutes les personnes qui m'apporteront leur aide.
André
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Voir ici

PS: Ne jamais hésiter à aller farfouiller dans les archives du forum ;)
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re,
salut staple1600

finalement, je l'ai fait quand même en fonction personnalisée.

Bien cordialement, @+
VB:
Function Fete_des_Meres(ByVal Annee)
Dim Date_Ref As Date, Premier_Dim_Juin As Date, Decal_Jour%
Date_Ref = DateSerial(Year:=Annee, Month:=6, Day:=1)
Decal_Jour = 7 - Weekday(Date_Ref, 2): If Decal_Jour >= 0 Then Decal_Jour = Decal_Jour - 7
Premier_Dim_Juin = Date_Ref + Decal_Jour + 7
If (Premier_Dim_Juin - 7) = CDate(((Round(DateSerial(Annee, 4, (234 - 11 * (Annee Mod 19)) Mod 30) / 7, 0) * 7) - 6)) + 49 Then
    Fete_des_Meres = Premier_Dim_Juin
Else
    Fete_des_Meres = Premier_Dim_Juin - 7
End If
End Function
Function Fete_des_Peres(ByVal Annee)
Dim Date_Ref As Date, Decal_Jour%
Date_Ref = DateSerial(Year:=Annee, Month:=6, Day:=1)
Decal_Jour = 7 - Weekday(Date_Ref, 2): If Decal_Jour >= 0 Then Decal_Jour = Decal_Jour - 7
Fete_des_Peres = Date_Ref + Decal_Jour + (3 * 7)
End Function
 

Staple1600

XLDnaute Barbatruc
Bonjour Bernard_XLD

Alors je me suis permis pour m'occuper dans VBE de trifouiller ton code
VB:
Function Fete_des_Parents(ByVal Annee, Maman As Boolean)
Dim Date_Ref As Date, Decal_Jour%, CLAFETE
Date_Ref = DateSerial(Year:=Annee, Month:=6, Day:=1)
Decal_Jour = 7 - Weekday(Date_Ref, 2): If Decal_Jour >= 0 Then Decal_Jour = Decal_Jour - 7
Premier_Dim_Juin = Date_Ref + Decal_Jour + 7
Select Case Maman
Case Is = True
If (Premier_Dim_Juin - 7) = CDate(((Round(DateSerial(Annee, 4, (234 - 11 * (Annee Mod 19)) Mod 30) / 7, 0) * 7) - 6)) + 49 Then
CLAFETE = Premier_Dim_Juin
Else
CLAFETE = Premier_Dim_Juin - 7
End If
Case Else
CLAFETE = Date_Ref + Decal_Jour + (3 * 7)
End Select
Fete_des_Parents = CLAFETE
End Function
Sub test()
MsgBox Fete_des_Meres(2022)
MsgBox Fete_des_Parents(2022, True)
MsgBox Fete_des_Peres(2022)
MsgBox Fete_des_Parents(2022, False)
End Sub
NB: C'est juste pour m'occuper pendant que la lessive tourne ;)
 

Andre51

XLDnaute Nouveau
bonjour Bernard_XLD, je ne veux absolument pas gâcher votre dimanche, vu la préciosité de votre temps, je veux juste savoir s'il existe une FORMULE Excel me permettant de trouver un jour de la semaine en l'occurence le dimanche, c'est tout mais apparemment insuffisant à vos yeux. Je vous prie de m'excuser pour la perte de votre temps occasionnée par ma demande.
Re,
salut staple1600

finalement, je l'ai fait quand même en fonction personnalisée.

Bien cordialement, @+
VB:
Function Fete_des_Meres(ByVal Annee)
Dim Date_Ref As Date, Premier_Dim_Juin As Date, Decal_Jour%
Date_Ref = DateSerial(Year:=Annee, Month:=6, Day:=1)
Decal_Jour = 7 - Weekday(Date_Ref, 2): If Decal_Jour >= 0 Then Decal_Jour = Decal_Jour - 7
Premier_Dim_Juin = Date_Ref + Decal_Jour + 7
If (Premier_Dim_Juin - 7) = CDate(((Round(DateSerial(Annee, 4, (234 - 11 * (Annee Mod 19)) Mod 30) / 7, 0) * 7) - 6)) + 49 Then
    Fete_des_Meres = Premier_Dim_Juin
Else
    Fete_des_Meres = Premier_Dim_Juin - 7
End If
End Function
Function Fete_des_Peres(ByVal Annee)
Dim Date_Ref As Date, Decal_Jour%
Date_Ref = DateSerial(Year:=Annee, Month:=6, Day:=1)
Decal_Jour = 7 - Weekday(Date_Ref, 2): If Decal_Jour >= 0 Then Decal_Jour = Decal_Jour - 7
Fete_des_Peres = Date_Ref + Decal_Jour + (3 * 7)
End Function
merci les amis c'est parfait, bonne journée
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
je veux juste savoir s'il existe une FORMULE Excel me permettant de trouver un jour de la semaine en l'occurence le dimanche, c'est tout
la question du fil était
j'aimerais connaître la formule excel me permettant de trouver le jour de la fête des mères

re,
ma foi, pour un jour de la semaine, vous avez cela ici aussi
https://www.excel-downloads.com/threads/nieme-day.20056322/

et, au vu de la façon dont vous répondez à ceux qui vous essaient de vous aider, ce sera ma dernière contribution à vos demandes.

Cordialement,
 

Staple1600

XLDnaute Barbatruc
Bernard_XLD

Je crois que c'est le moment de citer l'autre Bernard ;)
“Entre Ce que je pense,
Ce que je veux dire,
Ce que je crois dire,
Ce que je dis,
Ce que vous avez envie d'entendre,
Ce que vous entendez,
Ce que vous comprenez... il y a dix possibilités qu'on ait des difficultés à communiquer.
Mais essayons quand même...”


Merci, Bernard
(ca c'est pour Pierre D.)
;)

PS: Bernard_XLD
Que penses-tu de ce que j'ai fais subir à ton code VBA?
Je pense qu'on peut mieux faire comme all-in-one, non ?

[Ajout] Merci Bernard (celui du forum), j'ai pu corriger ma faute ;)
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour
VB:
Function Fetes_Des_Mères()
    Dim D1 As Date, theDay&,Y&
   Y=year(date): D1 = DateSerial(Y, 6, 0):
    theDay = Weekday(D1, vbUseSystemDayOfWeek)
    If theDay <> 7 Then D1 = D1 - 7 + (7 - theDay)
    pentecote = CDate(((Round(DateSerial(Y, 4, (234 - 11 * (Y Mod 19)) Mod 30) / 7, 0) * 7) - 6)) + 49
    If pentecote = D1 Then D1 = D1 + 7
    Fetes_Des_Mères = D1
End Function

Function Fetes_Des_Pères()
    Dim D1 As Date, theDay&
    D1 = DateSerial(Year(Date), 7, 1)
    theDay = Weekday(D1, vbUseSystemDayOfWeek)
    If theDay <> 7 Then D1 = D1 + (7 - theDay) + (3 * 7)
    Fetes_Des_Pères = D1
End Function

Sub test()
    MsgBox Format(Fetes_Des_Mères, "dddd dd mmmm yyyy")
    MsgBox Format(Fetes_Des_Pères, "dddd dd mmmm yyyy")
End Sub

pour les formules:
=Fetes_Des_Mères
=Fetes_Des_Pères
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
300

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 276
Messages
2 086 714
Membres
103 377
dernier inscrit
fredy45