Petits bugs sur le calendrier "Steelson"

Bonjour le Forum,

Je viens de découvrir le calendrier proposé par Steelson sur le sujet de Nico:

https://forum.excel-pratique.com/excel/calendrier-dans-cellule-excel-148194

https://forum.excel-pratique.com/viewtopic.php?f=3&t=138382

Je l'ai mis en place dans mon fichier pour qu'il s'affiche pour 3 colonnes et ça fonctionne, mais j'ai 2 petits bugs:

-> Avec le bouton "J" pour mettre la date du jour qui ne fonctionne pas.

-> Lorsque l'on double clic sur l'un des entêtes "Date...) par mégarde, la macro plante

Avec le message: Erreur d'exécution '13' Incompatibilité de type

Et la ligne surlignée en partie après Then: If quand = -1 Then quand = IIf(MSjour = "", Date, MSjour)

Lorsque je clique sur Arrêt macro, ça me ferme le fichier!

C'est pour ça que j'ai essayé d'adapter le code (mis en commentaire dans le code de la feuille "Portail") pour que le calendrier ne s'affiche que pour S3/T3/V3 jusqu'à la dernière cellule non vide de la colonne "A", de manière à ne pas faire planter la macro sur les entêtes, mais là je cale dessus!

Si quelqu'un a une idée pour m'aider...

Merci d'avance.

MdP du fichier: 123

B.A.

Bonjour, merci pour tes remarques.

-> Avec le bouton "J" pour mettre la date du jour qui ne fonctionne pas.

-> Lorsque l'on double clic sur l'un des entêtes "Date...) par mégarde, la macro plante

Avec le message: Erreur d'exécution '13' Incompatibilité de type

Et la ligne surlignée en partie après Then: If quand = -1 Then quand = IIf(MSjour = "", Date, MSjour)

Lorsque je clique sur Arrêt macro, ça me ferme le fichier!

1- Le bouton J a juste pour vocation de faire revenir le calendrier dans le mois en cours quand on a fait défiler les mois ou quand le calendrier s'est positionné sur la date actuelle de la cellule ... il aurait mieux valu mettre donc M à la place de J ... bonne remarque

"'affichercalendrier(" & CLng(Date) & ")'"

mais je pourrais adapter en effet !

2- il faut restreindre l'événement clic ou double clic aux seules cellules qui en ont besoin, par exemple en testant target.row > 1 et en effet on a une incompatibilité puisque la zone cliquée est du texte et non une date (je pourrais ajouter un on error et sortir du programme mais normalement le contrôle des zones suffit).

3- quand il y a erreur, le fichier ne se ferme pas ... regarde de ton côté

1ère proposition pour restreindre la zone (remplace A:A par les zones que tu avais définies)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Fonctionne
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Count > 1 Then Exit Sub
    Cancel = True
    affichercalendrier
End Sub

2ème proposition (en complément)

  • M remplace J
  • gestion d'erreur au cas où il y aurait du texte

Bonjour Steelson,

Merci d'avoir pris en compte mon petit problème, ça fonctionne nickel maintenant, je n'avais compris pas que le bouton "J" ramenait au mois en cours...

Je vais faire mon pénible, mais est-ce qu'il serait possible d'ajouter un bouton "Aujourd'hui" dans une mise à jour prochaine?

Merci encore @+

B.A.

ok pour la proposition !

et merci d'avoir signalé ces quelques points qui permettront d'améliorer

Rechercher des sujets similaires à "petits bugs calendrier steelson"