Adapter formule en code VBA

  • Initiateur de la discussion Initiateur de la discussion Chasse
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Chasse

XLDnaute Occasionnel
Bonjour a tous
Comment adapter cette formule en code VBA
avec cette formule je retourne le lundi suivant le 3 ieme dimanche du mois de septembre
Code:
=DATE(An;9;22)-JOURSEM(DATE(An;9;1);3)
résultat en 2012 = 17.09.2012
résultat en 2013 = 16.09.2013
résultat en 2014 = 22.09.2014

j’ai essayer avec ce code
Code:
lundiJeune = DateSerial(Year(dt), 9, 22 - Weekday(DateSerial(Year(dt), 9, 1), 3))
le résultat est bon pour 2012 & 2013

mais pour 2014 il me renvoie 15.09.2014 une semaine trop tôt

Merci de votre aide
 
Re : Adapter formule en code VBA

Hello pierrejean
Merci de ton aide
Mais comment l' intégrer dans ce code, qui comme tu peux l'imaginer n'ai pas de moi.


Code:
Function EstFérié(dt)
Static j(11), m(11), témoinjf, lundiJeune, pâques, i
j(1) = 1: m(1) = 1 'nouvel an
j(2) = 2: m(2) = 1 '2 janvier
'j(3) = 8: m(3) = 5
'j(4) = 14: m(4) = 7
j(3) = 1: m(3) = 8

'j(7) = 11: m(7) = 11
j(4) = 25: m(4) = 12
j(8) = 26: m(8) = 12
'lundiJeune = DateSerial(Year(dt), 9, 22) - DateSerial(Year(dt), 9, 1) ' "=DATE(YEAR(TODAY()),9,22)-WEEKDAY(DATE(YEAR(TODAY()),9,1),3)"
pâques = Round(DateSerial(Year(dt), 4, (234 - 11 * (Year(dt) Mod 19)) Mod 30) / 7, 0) * 7 - 6
j(6) = Day(lundiJeune): m(6) = Month(lundiJeune)
j(3) = Day(pâques - 2): m(3) = Month(pâques - 2)
j(9) = Day(pâques + 1): m(9) = Month(pâques + 1)
j(10) = Day(pâques + 39): m(10) = Month(pâques + 39)
j(11) = Day(pâques + 50): m(11) = Month(pâques + 50)
témoinjf = False
For i = 1 To 11
  If Day(dt) = j(i) And Month(dt) = m(i) Then
    témoinjf = True
  End If
Next
EstFérié = témoinjf
End Function

A+
 
Re : Adapter formule en code VBA

Bonjour Chasse, bonjour pierrejean, bonjour à tous.


D'accord avec pierrejean sur la méthode à suivre.
Mais on peut simplifier, et écrire :​
VB:
lundiJeune = DateSerial(Year(dt), 9, 22 - DateSerial(Year(dt), 9, 6) Mod 7) '=DATE(YEAR(TODAY());9;22-MOD(DATE(YEAR(TODAY());9;6);7))


Bonne journée.


ℝOGER2327
#7245


Jeudi 19 Clinamen 141 (Saint Barbeau, procureur et Sainte Morue, juste - fête Suprême Quarte)
21 Germinal An CCXXII, 4,3668h - gainier
2014-W15-4T10:28:50Z
 
Re : Adapter formule en code VBA

Bonsour®
Bonjour a tous
Comment adapter cette formule en code VBA
avec cette formule je retourne le lundi suivant le 3 ieme dimanche du mois de septembre
Code:
=DATE(An;9;22)-JOURSEM(DATE(An;9;1);3)
Code:
LundiJeune=DATESerial(Year(dt),9,21)-WEEKDAY(DATESerial(year(dt),9,0))+2
Capture.JPG

Jours fris Europe - Lundi du Jene fdral - Dates jusqu'en 2035
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    88.5 KB · Affichages: 48
  • Capture.JPG
    Capture.JPG
    88.5 KB · Affichages: 57
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
1 K
Retour