Autres problème de jour férié calendar patricktoulon Quebec duplaly

patricktoulon

XLDnaute Barbatruc
bonjour @duplaly
tu peux me mettre une capture d'écran ici
je te met la mienne le premier juillet est bien en couleur férié
demo.gif
 

patricktoulon

XLDnaute Barbatruc
regarde la ligne du 01/07/2023
Case Dat = CDate("01/07/" & Cbyear): férié = backfériéday: ctrlJ.ControlTipText = "Fête du canada": CF = fériédayFC ' fete du canada fixe

il ne peut pas y avoir d'erreur
si le bouton = 1 que cbmonth="juillet" et la cbyear impossible de se tromper
tu a forcement toucher quelque chose soit dans le calendar soit dans ton app
 

duplaly

XLDnaute Occasionnel
Patrick
La seule chose que je viens de remarquer pour les formats "US, CANADA, QUEBEC" les fériés sont en français "DD-MM" et me donnent des erreurs sur le 01 juillet.
Si je les mets en format "MM-DD", tout fonctionne.

Dis-moi ce que tu en penses!
 

patricktoulon

XLDnaute Barbatruc
re
@duplaly
les format
us=mm/dd/yyyy
ca=yyyy-mm-dd
quebec=yyyy-mm-dd

le premier jour commence pour:
US= le "sunday"
ca="lundi"
quebec="dimanche

pour info ta region c'est 2 le Canada qui est aussi celle du quebec


et il n'y a pas a sortir de la
si ça marche pas c'est que ton system n'est pas au format de ta région sytem c'est tout
et la mon pauvre ami je ne peut rien pour toi

le mode quebec est juste la pour une partie du canada "français" qui utilise le mode US pour les semaines mais en français

mais comme tu est le premier depuis la version 2.0 je tenterais plutôt pour un soucis de sytem region défaillant ou réglé autrement sur ton system

pour info avant de la mettre en ressource je l'envoie a un amis qui est un de tes compatriote pour tester et il ne m'a pas reporté cette erreur et il est au quebec justement

coucou robert (alias @dysorthographie)au passage
je ne suis pas sur de ça j'ai un W7 us sur un portable et ça ne m'a jamais causer de soucis
étonnamment en us ou ca ou FR vba reconnait le format (une date,"dd/mm/yyyy" )
duplaly
test ça pour voir
msgbox Application.International(xlDateOrder)
normalement il doit te retourner 2 si c'est pas le cas c'est ton system qui est réglé pour une autre region
et là il n'y a rien d'autre a faire que de re régler tout ça
 

patricktoulon

XLDnaute Barbatruc
re
au cas ou voila les même mais avec dateserial comme ça il n'y a plus d’ambiguïté
VB:
Case 22    'QUEBEC
        If Weekday(DateSerial(Calendar.Cbyear, Calendar.Cbmonth.ListIndex + 1, ctrlJ.Caption), vbSunday) = 1 Then férié = btweekBack: CF = btweekfc
        Select Case True    'Canada,Canadian,quebec
        Case Dat = DateSerial(Cbyear, 1, 1): férié = backfériéday: ctrlJ.ControlTipText = "Nouvel an": CF = fériédayFC '  jour de l'an    fixe
        Case Dat = DateSerial(Cbyear, 1, 2): férié = backfériéday: ctrlJ.ControlTipText = "Le lendemain du jour de l' an": CF = fériédayFC '  Le lendemain du jour de l' an  fixe
        Case Dat = paques - 2: férié = backfériéday: ctrlJ.ControlTipText = "Vendredi saint": CF = fériédayFC           '  vendredi saint    calculé
        Case Dat = paques + 1: férié = backfériéday: ctrlJ.ControlTipText = "Lundi de Pâques": CF = fériédayFC          'lundi de paques ok  calculée
         Case Dat = DateSerial(Cbyear, 5, 25) - IIf(Weekday(CDate("25/10/" & Cbyear)) <> 1, (Abs(1 - Weekday(CDate("25/05/" & Cbyear)))), 0): férié = backfériéday: ctrlJ.ControlTipText = "Fête de la Reine Victoria": CF = fériédayFC
        Case Dat = DateSerial(Cbyear, 6, 24): férié = backfériéday: ctrlJ.ControlTipText = "Fête du QUEBEC": CF = fériédayFC '  Fête du QUEBEC  fixe
        Case Dat = DateSerial(Cbyear, 7, 1): férié = backfériéday: ctrlJ.ControlTipText = "Fête du canada": CF = fériédayFC '  fete du canada    fixe
        Case Dat = DateSerial(Cbyear, 10, 15) - Weekday(CDate("01/10/" & Cbyear) - 1, vbMonday): férié = backfériéday: ctrlJ.ControlTipText = "Thangiving": CF = fériédayFC       '  Jour de l'action de grace ou Thanksgiving calculée toujours feté le 2d lundi d'octobre au canada
        Case Dat = DateSerial(Cbyear, 9, 7) - (Weekday(CDate("07/09/" & Cbyear), 2) - 1): férié = backfériéday: ctrlJ.ControlTipText = "Fête du travail": CF = fériédayFC                  '  fete du travail   fixe
        Case Dat = DateSerial(Cbyear, 12, 24): férié = backfériéday: ctrlJ.ControlTipText = "Veille de Noel": CF = fériédayFC                              '  Veille de Noel              fixe
        Case Dat = DateSerial(Cbyear, 12, 25): férié = backfériéday: ctrlJ.ControlTipText = "Noel": CF = fériédayFC                              '  noel              fixe
        Case Dat = DateSerial(Cbyear, 12, 26): férié = backfériéday: ctrlJ.ControlTipText = "Lendemain de noel": CF = fériédayFC                 '  lendemain de noel fixe
        Case Dat = DateSerial(Cbyear, 12, 31): férié = backfériéday: ctrlJ.ControlTipText = "Veille du jour de  l'an": CF = fériédayFC '  Veille du jour de  l'an    fixe
        Case Dat = Date: férié = mobildayback: CF = mobildayFC: ctrlJ.ControlTipText = "Aujourd'hui"
        End Select

pour moi en france ou mon pot au Quebec ça ne change rien
 

dysorthographie

XLDnaute Accro
Microsoft à dit:
CDate reconnaît les formats de date en fonction du paramètre local de votre système. L'ordre correct du jour, du mois et de l'année ne peut être déterminé s'il est fourni dans un format autre que l'un des paramètres de date reconnus. De plus, un format de date longue n'est pas reconnu s'il contient également la chaîne du jour de la semaine.
 

Discussions similaires

Statistiques des forums

Discussions
312 251
Messages
2 086 623
Membres
103 269
dernier inscrit
SamirSEK20