XL 2013 le calendrier de Patrick Toulon

JPaul78

XLDnaute Junior
Bonjour à tous,
Je créer une discussion car je ne sais pas comment envoyer une note à Patrick Toulon, mais peut-être que d'autres auront une idée pour contourner l'obstacle!
J'utilise depuis plusieurs mois le calendrier de Patrick que je trouve super d'utilisation et de mise en place.
Je rencontre néanmoins un petit soucis sur le choix de l'année. Comme le l'utilise en autre à la saisie de date de naissance, mes utilisateurs peuvent être amener à saisir une date de "vieux": 19 et quelques poussières. Pour cela les liste déroulantes ou spinbouton fonctionnent bien mais peuvent être longues. lorsque l'on doubleclic sur l'année et que l'on saisisse l'année voulue cela fonctionne bien. Par contre, lorsque l'on utilise la touche "retour arrière", dès que l'on arrive sur le 1ier chiffre, alors une erreurs "incompatibilité de type" sur "SpinButton2.Value = Cbyear.Value" dans le module "Cbyear_Change". J'ai tenté quelques approches mais avec succès mitigé.
Voici le meilleur traitement que j'ai trouvé, mais il y peut-être une solution plus élégante...
Private Sub Cbyear_Change()
Censuré a la demande de Patrick Toulon

Merci de vos avis éclairés
 
Dernière édition:
Solution
autant pour moi un petit oubli dans la gestion du bouton(1 à 42) click
en fait dans cet event on est dans une instance de classe calendar donc il faut prefixer cbyear par son parent
car avec certaines versions d'excel(je n'ai pas encore trouvé pourquoi) le "Me" ou rien suffit tandis qu'avec d'autre version il faut préfixer (et pas par me)
donc voila un truc tout bête
'evenement unique pour 42 boutons
Private Sub bout_Click()
If Calendar.Cbyear = "" Then MsgBox "l'année n'a pas été selectionnée!!" & vbCrLf & "veuillez saisir une année valide de 1900 à " & Year(Date) + 100: Exit Sub
With Calendar: .jour = Bout.Caption: .mois = .Cbmonth.ListIndex + 1: .an = .Cbyear.Value: .Hide: End With 'le...

JPaul78

XLDnaute Junior
Re
Je n'arrive pas à reproduire ce que tu décris (Explications ?)
Exemple je fais ça et puis ça et ensuite ça et j'ai tel message lorsque je fais ça !
Jean marie
Si tu utilises le fichier joint j’ai fait la modification notée dans mon 1ier poste. Mais je trouve cette modification un peu extrême et je voulais trouver quelques chose de plus soft. Tu as les lignes ajoutées de marquées merci
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
oui en effet on démarre a 1900 et on termine à year(date) +100
je n'est pas pensé que c’était nécessaire d'aller plus bas pour un calendrier de saisie

il faut savoir aussi que excel gère très mal les dates en dessous ce siècle

ceci dit :
pour les versions 4.1.9 / 4.2.1 / 4.2.2 et 4.2.3
change 1900 pour ce que tu veux dans la ligne ci dessous qui se trouve dans la fonction config
VB:
For I = 1900 To Year(Dat) + 100: Calendar.Cbyear.AddItem I: Next

et surtout change le min dans les propriété du spinbutton2 pour le min que tu aura mis dans la boucle

je vais voir si je peux ajouter la saisie manuelle dans la combo cbyear
@+
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
bon je viens de tester et effectivement si on descend plus bas c'est la fonction reload clavier qui fait planter
car les diverses fonction (utilisées) date/ weekday,etc... ne fonctionnent pas en dessous 1900

il faudrait que j'ajoute mes fonctions persos utilisées dans ma fonction datedifAMJ pour palier ce problème
mais ca représente trop de travail vu que la version 4.4.1 va sortir incessamment sous peu
 

patricktoulon

XLDnaute Barbatruc
ok
donc pour palier a ce problème de date en dessous 1900 sur excel je triche un peu
je ne garanti pas la véracité des jour fériés car ca c'est pas possible
mais tu peux descendre jusqu’à 1800
petit palliatif opéré sur la version 4.2.3 Belgique qui est la dernière version en 4.2 mise a jour en décembre 2021

il est bien entendu que ce palliatif n'est opéré que sur les cellules et qu'une date en dessous de 1900 devient donc du texte
Kado
voilà ;)
comme tu peux le voir je n'ai aucun soucis a saisir directement dans la combo ou descendre en dessous 1900
demo3.gif
 

Pièces jointes

  • 1 new calendar version 2019-2020 V.4.2.3.Begique.xlsm
    105.6 KB · Affichages: 18
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
ok
donc pour palier a ce problème de date en dessous 1900 sur excel je triche un peu
je ne garanti pas la véracité des jour fériés car ca c'est pas possible
mais tu peux descendre jusqu’à 1800
petit palliatif opéré sur la version 4.2.3 Belgique qui est la dernière version en 4.2 mise a jour en décembre 2021

il est bien entendu que ce palliatif n'est opéré que sur les cellules et qu'une date en dessous de 1900 devient donc du texte
Kado
voilà ;)
comme tu peux le voir je n'ai aucun soucis a saisir directement dans la combo ou descendre en dessous 1900
Regarde la pièce jointe 1133732
1800 lol ils sont plussss fous que moi ces romains 😅😂🤣🙃
 

JPaul78

XLDnaute Junior
re
j'ai vu aussi que tu parle de saisie tu n'ai pas obligé d'utiliser le spinbunton du peux développer la combo aussi et aller chercher et sélectionner l'année
mais en dessous 1900 je crois que c'est rapé
Oui tout a fait et c'est comme cela que je demande de l'utiliser. Mais je ne suis pas en risque qu'un nouvel utilisateur utilise le backspase pour saisir sa date. Comme je voulais au maximum traiter les erreurs afin que le programme reste opérationnel, j'avais ajouté les lignes dans mon 1ier poste.
Merci de ta réactivité Patrick, Perso Je n'irai jamais chercher une date inférieure à 1900 (1970 devrait être un très grand max). par contre, le risque reste entier, en effet le backspase met à zéro la date et le programme se met en erreur, et c'est là mon véritable pb.

Malgré tout, merci pour ce développement très utile
JPaul
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 182
Membres
112 677
dernier inscrit
Justine11