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

ChTi160

XLDnaute Barbatruc
Bonsoir le Fil ,
je pense que comme cité par JM #58
On peut toujours trouver un truc qui n'a rien a voir avec ce que l'on est sensé faire avec L'objet (ici saisie d'une date)
si j'ouvre le Calendrier , c'est pas pour y mettre l'année a vide et ensuite aller dans le Combobox des Mois pour le vider ! est avoir un message d'erreur !
Non je vais l'utilisé pour ce qu'il est sensé faire sélectionner une date puis un mois et enfin la date que je n'ai pas eu le Courage de taper à la main ! Lol
Bonne Continuation
Jean marie
 

Staple1600

XLDnaute Barbatruc
Bonsoir ChT160

=>ChTi160
Je te remercie de m'avoir vu passé dans le fil;)
Je me sens moins seul.
Apparemment (note à moi-même pour plus tard), faut pas oser la digression avec les maitres des horloges (sous peine d'être ignoré ou pire confondu avec un autre XLDnaute)
Donc d'un JM à un autre JM, merci bien de m'avoir vu, ChTi160

PS: je rappelle quand même à M. Toulon que j'ai toujours l'œil qui saigne à force de voir Vend au lieu de Ven ;)
(cf mon 1er premier message dans ce fil)
 

TooFatBoy

XLDnaute Barbatruc
si j'ouvre le Calendrier , c'est pas pour y mettre l'année a vide et ensuite aller dans le Combobox des Mois pour le vider ! est avoir un message d'erreur !
Non je vais l'utilisé pour ce qu'il est sensé faire sélectionner une date puis un mois et enfin la date que je n'ai pas eu le Courage de taper à la main ! Lol
Ca, c'est parce que tu es programmeur et que tu te forces (consciemment ou non) à penser comment le programmeur à prévu qu'on utilise son soft.
C'est une erreur de la part d'un programmeur que de croire que son soft va être utilisé comme lui le veut et non comme pourrait éventuellement l'utiliser monsieur Lambda.

Et ne pas s'occuper d'éventuelles mauvaises utilisations serait quand même étrange. Surtout quand on a des gens qui constatent des soucis. ;)


Un bon développeur doit savoir qu'un mauvais utilisateur fera nécessairement toutes les bêtises possibles et imaginables
Ca devrait être écrit en lettres d'or sur les cheminées de tous les programmeurs. 😁
 

GALOUGALOU

XLDnaute Accro
bonsoir le fil
suite au fil de staple 1600
comme le dirais murphy (je ne suis pas certain que tout le monde connaisse la loi de Murphy)
1er approche "le pire est toujours certain"
2eme approche "les manœuvres les plus stupides de l'utilisateur doivent être prise en compte"
Bon c'était ma minute de distraction...

ce fil est avant tout destiné au calendrier de Patricktoulon, (désolé patrick de m'être invité dans cette conversation) aussi permettez-moi cet aparté pour répondre à la juste réflexion de als35
VB:
@GALOUGALOU
Pour te distraire encore, si tu effaces l'année et que tu cliques sur un bouton, ça plante.
j'ai essayé de corriger avec ces macros
Code:
Private Sub Combo_année_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim dt As Integer
dt = Year(Date) + 100
If Len(Me.Combo_année) < 4 Then
Me.Combo_année = Year(Date)
MsgBox "Format année erroné, pour rappel yyyy," & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "la date saisie est remplacé par l'année actuelle"
End If
If Me.Combo_année.Value < 1900 Then Me.Combo_année.Value = Year(Date): MsgBox "Année hors limite, avant 1900" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "la date saisie est remplacé par l'année actuelle"
If Me.Combo_année.Value > dt Then Me.Combo_année.Value = Year(Date): MsgBox "Année hors limite, après" & dt & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "la date saisie est remplacé par l'année actuelle"
End Sub
Private Sub Combo_année_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim VT As Integer
Me.Combo_année.MaxLength = 4
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0
MsgBox "CARACTERE NON AUTORISE"
End Select
End Sub

Effectivement ce fil me distrait, mais je pense malgré tout que l'essentiel, ce sont les solutions trouvées au calendrier de patricktoulon, par patricktoulon lui-même. (prévoir les manœuvres les plus stupides de l'utilisateur, voila bien un beau challenge !)
Je vais essayer de me faire oublier. Bonne suite au fil
cdt
galougalou
 

Pièces jointes

  • G_calendrier_v6 .xlsm
    72.5 KB · Affichages: 8

Staple1600

XLDnaute Barbatruc
Re

=>ChTi160
Je parlais de la copie d'écran dans le fil
(car je relis le fil depuis le début à chaque fois pour voir si mon œil va encore couler ;))
Et si Staple va redevenir Staple au lieu de rester Dranreb dans le message#24

Sinon pour rester dans le thème, où il se cache celui-ci, hein?
calendrier.png


EDITION: Merci GALOUGALOU toi aussi de m'avoir vu passé ;)
L'essentiel sur un forum n'est pas essentiel puisque nous passons du temps agréablement avec notre tableur préféré ;)
 

TooFatBoy

XLDnaute Barbatruc
=>ChTi160
Je parlais de la copie d'écran dans le fil
(car je relis le fil depuis le début à chaque fois pour voir si mon œil va encore couler ;))
Et si Staple va redevenir Staple au lieu de rester Dranreb dans le message#24

Moi j'aurais juré que tu parlais de l'abréviation du vendredi...
PS: je rappelle quand même à M. Toulon que j'ai toujours l'œil qui saigne à force de voir Vend au lieu de Ven ;)

Faut croire que j'ai encore rien compris.... :(
Mieux vaut que j'aille me reposer.
Bonne continuation à tous les participants.


Longue vie et prospérité 🖖
 

ChTi160

XLDnaute Barbatruc
Re
Marcel tu dis :
Ca, c'est parce que tu es programmeur et que tu te forces (consciemment ou non) à penser comment le programmeur à prévu qu'on utilise son soft.
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
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir marcel32

1) Mon 1er message (le#22) fait référence à la copie d'écran de patrick
où l'on voit Vend au lieu de Ven (message#17)
2) au message#24, patrick se cogne la tête et me prends pour Dranreb
bref solution il y a
@Dranreb
oui tu a raison esthétiquement parlant c'est une coquille comme Thur en anglais d'ailleurs
Depuis le message#24, la bosse n'a toujours pas dégonflée.
Patrick ne semble pas m'avoir vu passé (il m'a pas fait la bise ;))
Et donc oui, mon œil continue à couler puisqu'à chaque fois je relis le fil depuis le début pour voir si il y a eu des éditions.

Mais là j'ai appâté le patrick avec de l'API, il devrait réagir ;)
 

patricktoulon

XLDnaute Barbatruc
re
pour ceux qui veulent le calendrier de MS et qui n'on pas le com
c'est une alternative vielle comme le monde avec l'api createwindowhex

je sais pas mais je crois que @Staple1600 a disjoncté
le "d" de "vend" il me semble l'avoir enlevé depuis la V°4.2.1
 

Pièces jointes

  • Calendrier avec API.xls
    51.5 KB · Affichages: 13

Staple1600

XLDnaute Barbatruc
Bonsoir patrick

Relis le message#70 et rends-toi dans les messages que je cite tu verras que je n'ai pas disjoncté puisque ces messages n'ont pas été édités.
(Le Vend est toujours sur la copie d'écran et tu me prends toujours pour Dranreb ;))

Et tu as mal regardé ma copie d'écran
Je parle de récupérer le calendrier qui apparait dans le filtre automatique
( sur Excel 2013 et supérieur)
Pas de celui qu'on peut voir dans ta dernière PJ.
(Il y a longtemps(*) effectivement que j'ai ce code API dans mes archives
(*)Tu n'étais pas encore membre d'XLD ;) )
 

Staple1600

XLDnaute Barbatruc
Re

Si j'utilises le code API, on obtient un calendrier qui différe de celui qu'on voit sur ma copie d'écran.
Ma question est donc : Peut-on appeler par VBA ce calendrier qui apparait dans le filtre chronologique ( sur Excel 2013 [peut-être aussi à partir d'XL2010 - à vérifier] )
Pour le moment, je n'ai pas réussi à le faire.
 

Staple1600

XLDnaute Barbatruc
Re

Pour être explicite, on voit que les calendriers différent, non ?
Comparaison.png

Je me demande donc où se cache ce calendrier(*) dans Excel?
Dans une dll? Un complément ?
(*) celui-du filtre Auto

EDITION: Merci patricktoulon de m'avoir fait réintégrer mon corps dans le message où tu m'as confondu avec Bernard. ;)
Reste juste mon œil qui coule encore un peu à cause non pas la persistance rétienne mais la persistance de la copie d'écran ;)
Mais n'en parlons plus mais je suis désormais moi-même dans le fil.
Mais si tu trouves le moyen de piloter le calendrier du filtre auto (par vba et/ou api) alors j'écris en avance et en couleurs bravo
Bravo
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87