Autres [Résolu]calcul de date

patricktoulon

XLDnaute Barbatruc
bonjour a tous
c'est la dernière ligne droite pour mon calendrier V4.0
je met au point le calcul de date pour 2 date canadienne

1° la fête de la reine (victoria) le lundi qui precede le 25 mai
avez vous plus simple que ceci :
VB:
Sub test3()
'calcul pour le lundi qui precede le 25 mai fete de la rene au canada
MsgBox CDate("25/10/2019") - IIf(Weekday(CDate("25/10/2019")) <> 1, (Abs(1 - Weekday(CDate("25/10/2019")))), 0)
End Sub
et
pour thansgiving toujours le 2d lundi d'octobre
?????
allez c'est a votre bon coeur ;)
 

Roland_M

XLDnaute Barbatruc
Bonjour tout le monde

perso j'utilise déjà ceci:
Dim DateX As Date: Annee = 2019

'--- le lundi qui précède le 25 mai =(Journée nationale des patriotes)(FerieQuebec)
DateX = "25/05/" & Annee: DateX = DateX - Weekday(DateX, vbMonday) + 1
'--- le 2e lundi d’octobre (Action de grâces)
DateX = "01/10/" & Annee: DateX = DateX + 14 - Weekday(DateX - 1, vbMonday)
 

Staple1600

XLDnaute Barbatruc
Bonsoir

Une autre syntaxe* (histoire de titiller la dinde) ;)
VB:
Sub dindepatatatesdoucesetcanneberge()
an = Year(Date)
MsgBox DateValue("15/10/" & an) - Weekday(DateValue("6/10/" & an)), vbExclamation, "Thanksgiving - Miam ;-)"
End Sub

*: à la relecture, on pourrait même appeler cela une variante de syntaxe plutôt qu'une autre syntaxe ;)
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour a tous
merci Staple 1600 u a oublié un truc( le pinoche qui va avec );)
pourquoi s'ennuyer a cherché la fin de semaine 1 ,le weekday du jour 1 du mois - 1 jour suffit non ?
en faisant avec le 01/mois j'ai la même formule pour les deux :seule la constante (VB jour) change
VB:
Sub dindepatatatesdoucesetcannebergeSauterneOuMonbaziliac()
    Dim cbyear
    cbyear = 2019
    MsgBox CDate("15/10/" & cbyear) - Weekday(CDate("01/10/" & cbyear) - 1, vbMonday)    'canada   2d lundi d'octobre
    MsgBox CDate("29/11/" & cbyear) - Weekday(CDate("01/11/" & cbyear) - 1, vbThursday)   'US          4 eme jeudi de novembre
End Sub
merci a tous ;)
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Vous reprendrez bien un peu de dinde ? ;)
VB:
Function C_kanladinde(cbYear$, Optional jour As VbDayOfWeek = 2, Optional Erable As Boolean = True) As Date
C_kanladinde = CDate(CStr(IIf(Erable, "15/10/", "29/11/")) & cbYear) - Weekday(CDate(IIf(Erable, "01/10/", "01/11/") & cbYear) - 1, jour)
End Function
Sub test()
MsgBox Format(C_kanladinde(2019), "dddd dd mmmm yyyy") 'Canada
MsgBox Format(C_kanladinde(2019, vbThursday, False), "dddd dd mmmm yyyy") 'US
MsgBox Format(C_kanladinde(2019, 5, 0), "dddd dd mmmm yyyy") 'US
End Sub

Et ce petit bout fonctionne aussi, non ?
VB:
Sub TurkeyDayChezLesRicains()
Dim cbYear
cbYear = Year(Date)
MsgBox DateValue("29-11-" & cbYear) - Weekday(DateValue("24-11-" & cbYear))
End Sub
 

Roland_M

XLDnaute Barbatruc
bonsoir tout le monde,

Salut Staple !

Patrick j'ai un problème avec ton calendrier, j'ai une inversion dans la date: mm/jj/aaaa
si je clic sur le 1/09/2019 j'ai sur cellule 09/01/2019
et si je re-clic sur cette date j'ai ceci:


1569437925584.png

EDIT: sur userf
1569484826714.png
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
ReBonsoir le fil

Pour sortir de la dinde et entrer dans la reine ;)
(voir la petite erreur* dans le message#1 dans test3)
VB:
Sub test3_euh_mai_tavéditnon()
Dim XXV
XXV = CDate("25-5- " & Year(Date))
Victoria = Format(DateAdd("ww", -1, XXV - (Weekday(XXV, 2) - 1)), "dddd dd mmmm yyyy")
MsgBox Victoria, vbExclamation, "Victoria Day"
End Sub

*: je viens de voir que Roblochon avait déjà levé le lièvre précédemment ;)
Reste plus qu'à trouver le jour de la fête du cochon ou de la fête du slip ;)
(oui je sais, humour bas de gamme, mais zavez vu l'heure! ;) )

PS: adapté d'un code de Dan Metheus
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonsoir tout le monde,

Salut Staple !

Patrick j'ai un problème avec ton calendrier, j'ai une inversion dans la date: mm/jj/aaaa
si je clic sur le 1/09/2019 j'ai sur cellule 09/01/2019
et si je re-clic sur cette date j'ai ceci:


Regarde la pièce jointe 1041665
EDIT: sur userf
Regarde la pièce jointe 1041692
bonjour Roland n'aurais tu pas compris ??,
dans l'exemplaire pour le 1er septembre
la colonne 1 est en appel US (0) donc 09/01/2019
la colonne 2 est en appel FR (1) donc 01/09/2019
la colonne 3 est en appel "CA"(2) donc 2019-09-01
demo2.gif



et c'est exactement pareil pour le userform testeur le label devant te le dit non ?
bien sur faut il encore que tes colonnes soit formatées
ici on est en france donc automatiquement le format sera francais tout du moins si ta version OS et MSO sont en francais

au US il n'auront pas besoins de formater la colonne 1
au CA(une partie) il n'auront pas besoins de formater la colonne 3
c'est comme je l'ai dis soit l'option regionale paramétrée soit le format de la celluleque l'on a appliqué


dans les textboxs on s'en fou c'est du string j'injecte donc format(la date construite,forme)



msgbox application.international(xldateorder)
0 us
1 fr
2 CA
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
re

excuses moi mais c'est sur une cellule au hasard sur la feuille !
donc en fr ça devrait être jj/mm/aaaa
ensuite quand je reclic sur cette même cellule avec cette date inversée le calendrier réapparaît sans rien ! tout blanc !?

ensuite sur l'userform ok, mais ce que je te montre c'est encore le calendrier sans rien aussi, tout blanc lorsque je reclic dessus !?

pour le reste je ne suis pas sénile j'avais bien vu !
 

Discussions similaires

Statistiques des forums

Discussions
312 099
Messages
2 085 273
Membres
102 846
dernier inscrit
gilles45