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...

patricktoulon

XLDnaute Barbatruc
hah.........
mais non ce sont les memes sauf que l'on peut arranger avec les apis
les boutons les couleurs le rond dessiné a la main pour le jour etc.....
j'ai ça dans mes archives mais dans les anciens disque durs
il faut que je m’achète un adaptateur usb comme ça je pourrait toujours aller foullier dans ce foutra
mais je peux te confirmer que c'est le meme à 100%
 

Staple1600

XLDnaute Barbatruc
Re

=>patrick
Donc tu veux dire qu'en natif, utilises les API pour afficher le calendrier dans le filtre auto?
Et que donc on pourrait obtenir le même résultat dans ton userform ?
(cad reproduire à l'identique le calendrier d'Excel 2013 du filtre auto dans un Userform)
 

patricktoulon

XLDnaute Barbatruc
re
déjà pour commencer
model = &H50000012 'sans le aujourd'hui
model = &H50000008 'sans le rond dessiné a la main
model = &H50000006 'avec les semaines
model = &H50000024 'avec les semaines+rond rouge +aujourd'hui
model = &H50000028 'avec lejour en bleu sans rond rouge + aujourdh'ui
model = &H50000196 'avec le rond rouge pas aujourdh'ui et les semaines
c'est l'argument dwStyle
 

Staple1600

XLDnaute Barbatruc
Re

Un moment, j'ai cru que le calendrier se cachait dans ce complément
Date(XML)
D'ailleurs, il sert à quoi ce complément ?

Ensuite, me suis dit que c'était peut-être un contrôle qu'on pouvait appeler par son ID.
Puis j'ai laissé tombé

C'est en tombant sur ce fil, que je me suis rappelé du calendrier du filtre auto et que je me suis dit que le petit gars (ou grand j'en sais rien ;)) de Toulon irait bien mettre les mains dans le cambouis d'Excel pour afficher ce mignon (enfin moi je le trouve mignon) calendrier avec une macro de derrière les fagots ;)
 

patricktoulon

XLDnaute Barbatruc
re
en fait moi je l'affilie a un userform mais c'est une fenêtre a part entière
tu peut très bien faire ça dans un module & utiliser l'api settimer pour lancer une sub de récupération du CurSysTime pour te passer d'un bouton pour chopper la date cliquée
tu n'aura que le calendrier sans fenêtre
et lancer en meme temps en application onkey esc "procedure de fermeture " pour fermer en cas de soucis avec le postmessage ou sendmessage
 

JPaul78

XLDnaute Junior
bonjour @Marcel32
ben c'est simple @JPaul78 ferme le calendrier brutalement par la gestion d'erreur
moi je considère que ca n'est pas une solution
on ferme pas un interface parce que l'on c'est trompé mais on gère l'erreur

@ALS35 il faudra me dire comment tu fait
le code de l'event parle de lui meme
VB:
Private Sub Cbyear_Change()
    If sortieEsc Then Calendar.valeur = oldvalue: Me.Hide: Exit Sub
    If Cbyear <> "" Then If Not IsNumeric(Cbyear.Value) Then Cbyear = "": Exit Sub
    If Val(Cbyear) < SpinButton2.Min And Cbyear.Value <> "" Then
        MsgBox "veuillez saisir une année valide de 1900 à " & Year(Date) + 100
    Else
        If Cbyear <> "" Then SpinButton2.Value = Cbyear.Value: Calendar.ReloadClavier
    End If
End Sub
alors si toi malgré ça tu arrive a taper autre chose que de 1900 à 2122 il faut m'expliquer comment
il n'y a aucune raison que ca fonctionne différemment chez vous

Re
Marcel tu dis :

Moi, j'aurais tendance à penser l'inverse Lol
C'est parce que je programme que je vais chercher la petite Bête, la petite faille etc etc Lol
Ce que lambda ne fera pas car il utilise au plus simple , je choisis l'années, là où ça semble être des années, puis le Mois-là où ça semble correspondre à des Mois et ensuite je click sur le Jour du Mois qui m'intéresse (faudrait tester des Lambda pour voir combien vont chercher ce qui pourrait ne pas marcher)
Enfin ça c'est que je pense !
Ça ne m'empêche pas de penser lorsqu'avec mes petits moyens j'essaie de créer quelque chose
Je réfléchis à ce que pourrait faire Un Lambda ! Ça c'est mon côté petit programmeur.
Comme je dis toujours, je n'ai jamais utilisé Office à titre personnel ou professionnel ! Un lambda quoi ! lol
Y'a je pense beaucoup de gens qui utilisent ce Calendrier depuis ses débuts et qui n'ont pas eu tous ces problèmes , que nous avons découvert (ils ne devaient pas bien chercher) Lol
Bonne fin de Soirée
Jean marie
be perso, j'utilise ce calendrier dans une application qui tourne dans des garages (qui je trouve très bien au demeurant et qui deviendra parfait si Patrick veuille bien nous écouter) et j'ai eu un plantage de l'application. Comme il est inacceptable pour moi d'avoir un truc qui plante j'ai cherché des solutions. Plus on utilise une solution plus on la dévermine. la vie normale quoi!
 

JPaul78

XLDnaute Junior
Bonjour a tous,
je pense fermer le post (dès que j'aurai trouvé comment) je donne ma solution qui aux vues des plantages reportés à ce jour et des solutions proposées ici, voici un méthode qui résout mes soucis et qui rend le calendrier quasi parfait de Patrick (sauf si l'on découvre d'autre risques de plante avec une utilisation plus dense)
Notez que les lignes en gras ne sont pas validées par Patrick l'auteur de ce calendrier

Private Sub Cbyear_Change()
On Error GoTo ErreuR
If sortieEsc Then Calendar.valeur = oldvalue: Me.Hide: Exit Sub
If Cbyear <> "" Then If Not IsNumeric(Cbyear.Value) Then Cbyear = Year(Date)
If Len(Cbyear.Value) > 4 Then Cbyear.Value = Left(Cbyear.Value, 4)
SpinButton2.Value = Cbyear.Value: Calendar.ReloadClavier

'gestion d'erreur

Exit Sub
ErreuR:

Calendar.valeur = oldvalue
End Sub

Avec cette solution, on ne peut pas rajouter de chiffre cela ne ferme pas le calendrier on peu modifier l'année avec un backspace
bref le bonheur merci à tous de votre aide sur ce sujet et à bientôt ..peut-être
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

=>Pour infos<=
@JPaul78
je pense fermer le post (dès que j'aurai trouvé comment)
Tu ne peux fermer un post
Tu peux juste le marquer comme résolu.

Comme tu l'as déjà fait dans ton autre discussion (déjà en relation avec le calendrier à Patrick)
 

patricktoulon

XLDnaute Barbatruc
re
On Error GoTo ErreuR
Ahgrrrrrrr!!!!!!!!!!!!
donnez moi une pioche que j'en face de bouillie😂😂🤣

non non non !!
il y a ici aucune raison de devoir gérer une erreur
je veux bien comprendre que pour toi c'est plus simple

mais c'est ce que tu n'arrive pas a comprendre

c'est que ca n'est pas une politique de résolution de problème propre

et tu sais pour quoi?
tout simplement parce que tu n'a pas pris la peine de regarder le dernier fichiers sinon tu aurais vu que l'erreur peut être excepter non pas dans le change de la combo mais dans l'event de substitution des 42 boutons jours
je pourrais même te faire clignoter la combo en cas d'erreur ou faire danser une ballerine a poil rat sur ton clavier 😂😂
et cela TOUJOURS sans gestion d'erreur

on travaillerait avec basic 1 je comprendrais mais là on est en visualbasic 6/7.0 quand même
 

JPaul78

XLDnaute Junior
re

Ahgrrrrrrr!!!!!!!!!!!!
donnez moi une pioche que j'en face de bouillie😂😂🤣

non non non !!
il y a ici aucune raison de devoir gérer une erreur
je veux bien comprendre que pour toi c'est plus simple

mais c'est ce que tu n'arrive pas a comprendre

c'est que ca n'est pas une politique de résolution de problème propre

et tu sais pour quoi?
tout simplement parce que tu n'a pas pris la peine de regarder le dernier fichiers sinon tu aurais vu que l'erreur peut être excepter non pas dans le change de la combo mais dans l'event de substitution des 42 boutons jours
je pourrais même te faire clignoter la combo en cas d'erreur ou faire danser une ballerine a poil rat sur ton clavier 😂😂
et cela TOUJOURS sans gestion d'erreur

on travaillerait avec basic 1 je comprendrais mais là on est en visualbasic 6/7.0 quand même
Oui Patrick je te crois et j'ai bien regardé le dernier fichier mais j'ai un réel pb avec ta dernière version. En effet elle ne fonctionne plus du tout chez moi comme je l'ai mentionné a un moment de ce fil. j'utilise la version "1 new calendar version 2019-2020 V.4.2.3.3.Begique" et j'obtiens l'impression d'écran que j'ai mis en pj dès que je clique sur un jour! Donc impossible pour moi de faire le moindre test! (j'ai Excel 2013 32bit et Win 11 64 bit). si j'analyse un peu, je constate que ds le pgm "Cbyear_Change" tous semble bien se passer, la valeur Cbyear est bien à l'année voulue, mais est est à vide dans le pgm "bout_Click". ce qui fait qu'en final le calendrier ne fonctionne plus du tout chez moi.
 

Pièces jointes

  • Capture d’écran 2022-03-18 180508.jpg
    Capture d’écran 2022-03-18 180508.jpg
    82.3 KB · Affichages: 25

TooFatBoy

XLDnaute Barbatruc
j'obtiens l'impression d'écran que j'ai mis en pj dès que je clique sur un jour!
Ah oui, j'avions point vu mais ça fait pareil chez oim... :(

pb-calendar-du-sud.png
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 966
Membres
103 069
dernier inscrit
jujulop