Microsoft 365 Problème Userform calendrier

Amilo

XLDnaute Accro
Bonjour le forum,

Comme évoqué dans mon précédent fil, je rencontre un certain nombre de problèmes depuis peu sur mes fichiers Excel
Ce problème apparaît sur mes 2 versions d'Excel Pro 2019 et Office 365,

Je vous joins le fichier en pièce jointe ainsi qu'une capture avec le message d'erreur lorsque que je clique sur la zone en vert du fichier et les "Références" activées dans VBAProject,

P.S : ces codes qui fonctionnaient encore il y a quelques jours, m'avaient été fournis aimablement sur ce forum ici il y a presque 10 ans :)

Merci d'avance pour votre aide

Bonne journée

1623490092004.png
ici
 

Pièces jointes

  • DoubleCalendriers.xlsm
    122.8 KB · Affichages: 31
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Ici j'ai eu l'erreur aussi mais dans référence la ligne "controls 2 6.0 .... " etait précédée de MANQUANT
j'ai décoché cette ligne
Ensuite j'ai dû supprimer ton USF ( erreur aussi) et le recréer
Maintenant ce fichier est ok chez moi
 

Pièces jointes

  • DoubleCalendriers.xlsm
    122 KB · Affichages: 10

Amilo

XLDnaute Accro
Bonjour herve62, Dranreb,

@herve62 , je vous remercie d'avoir pris le temps de vous être penché sur mon problème,
J'ai testé votre le fichier et je note que le code qui se trouvait dans l'Userform1 n'est plus là et le fichier ne fonctionne donc pas chez moi.

Vous n'auriez pas transmis la mauvaise version ?

@Dranreb , merci également à vous pour les informations sur un autre modèle de calendrier, pour ma part, je vais rarement au delà d'un ou 2 mois en arrière pour la saisie des dates.
Mais j'en aurai probablement besoin un jour dans un autre contexte

Cordialement
 

patricktoulon

XLDnaute Barbatruc
Bonjour
mis a part qu'il faut simplement remettre les monthviews dans ton userform (par la boite a outils)
ca fonctionne sur 2013 32 bits
si tu es en office 64 évidement ce Control n'est plus dispo me semble t-il
après pourquoi 2 monthviews ; ça je me demande ; vu que l'usf s'affiche au double clic sur cell ;)
 

Dranreb

XLDnaute Barbatruc
Le code ?? ton usf est vierge donc à quoi sert ton code ??
Ben oui, il était vierge parce que les MonthView avaient été virés !
Ce contrôle est de ceux qui posent régulièrement des problèmes de portabilité. Je ne l'utilise plus depuis longtemps.
après pourquoi 2 monthviews ; ça je me demande ; vu que l'usf s'affiche au double clic sur cell
C'est ce que je n'ai pas compris non plus: deux calendriers pour une seule cellule. C'est parce que je n'ai pas pu comprendre ça que je n'ai pas proposé de code spécifique utilisant mon calendrier. Remarque: au cas où ce serait lié à ça, il est muni d'une méthode Période permettant de limiter la saisie entre deux dates spécifiées.
 

Amilo

XLDnaute Accro
Re,
Bonjour patricktoulon,

Désolé pour mon retour tardif, je m'étais absenté toute l'après midi,
Sinon, pas mal de questions et je vous en remercie pour votre intérêt,

@patricktoulon , Dranreb , concernant la réactivation des Monthviews, s'il s'agît de la référence "Microsoft Windows Common Controls", ce dernier a tout simplement disparu alors qu'il était coché initialement.
Il n'y avait pas le terme "MANQUANT ....." et là je n'ai plus rien.
Il est probablement là mon problème….

Sinon, ce fichier avait été créé pour le traitement des notes de frais pour une collègue.
L'idée d'un double calendrier est simplement d'éviter de naviguer entre les mois et d'avoir au moins 2 mois dans le même Userform.

Au déclenchement, du calendrier, celui-ci s'ouvre toujours sur le mois en cours à droite et le mois précédent dans la partie de gauche (voir images du calendrier dans le fichier Excel).
L'intérêt est d'indiquer la date du ticket ou justificatif des dépenses.
En fait, chaque ligne de la plage en vert correspond à la date d'un ticket.
En réalité, j'ai une plage verticale d'une 50 taines de cellules.

Ce contrôle est de ceux qui posent régulièrement des problèmes de portabilité. Je ne l'utilise plus depuis longtemps.

Dranreb, vous avez raison concernant votre remarque ci-dessus, j'ai croisé pas mal de sujets sur des problèmes avec "DT Picker".
Je sais qu'à l'époque j'avais dû installer des fichiers du genre MSCOMCT2.OCX. selon ma version Windows qui est en 64 bit sur mon PC perso.

herve62, merci pour votre 2ème message, en fait comme indiqué par Dranreb, dans votre fichier le code n'existe plus en raison du problème des Montviews.
Sinon, le code se trouvait bien dans le fichier de mon 1er message

Je crois bien que je vais devoir soit changer de calendrier soit me pencher du côté des MSCOMCT2 ou MSCAL.COM.....

Merci encore pour votre soutien


Cordialement
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Ouais, bon, ça se fait à peu près avec une version du UFmCalenS conçue pour être affichée en non modal et décrétant des évènements. Mais à mon avis ça complique pas mal pour pas grand chose. Il y a de si nombreuses façons de revenir au mois précédent sur un seul calendrier que ça ne vaut pas le coup …
 

Pièces jointes

  • MiloDoubleCalendriers.xlsm
    159.3 KB · Affichages: 16

Amilo

XLDnaute Accro
Ouais, bon, ça se fait à peu près avec une version du UFmCalenS conçue pour être affichée en non modal et décrétant des évènements. Mais à mon avis ça complique pas mal pour pas grand chose. Il y a de si nombreuses façons de revenir au mois précédent sur un seul calendrier que ça ne vaut pas le coup …

Bonjour à tous,
Je vais effectivement abandonner mon modèle de calendrier qui pose parfois des soucis selon l'environnement de Windows et les versions d'office.

Merci Dranreb pour le fichier avec le double calendriers, cela correspond à ce que j'avais.
J'ai bien vu également dans le lien posté par herve62, que vous aviez proposé une version avec 1 seul calendrier. Je pourrais opter peut être pour cette dernière…..à voir

Sinon, j'aimerais svp déclencher le calendrier au double clic de la cellule au lieu de la sélection.

J'ai bien tenté de modifier le code dans la feuille1 par un évènement DoubleClick mais sans succès.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range)

J'imagine qu'il faut également adapter les lignes suivantes du code mais je ne sais pas trop comment :)

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Intersect(Target, Me.Range("C5:C20")) Is Nothing And Target.CountLarge = 1 Then
      If UFmCal1 Is Nothing Then Set UFmCal1 = New UFmCalenS
      If UFmCal2 Is Nothing Then Set UFmCal2 = New UFmCalenS
      Set Cel = Target
      UFmCal1.Value = DateSerial(Year(Date), Month(Date) - 1, 1)
      UFmCal2.Value = Date
      UFmCal1.Posit Cel, 1, 0.9
      UFmCal1.Show 0
      UFmCal2.Left = UFmCal1.Left + UFmCal1.Width
      UFmCal2.Top = UFmCal1.Top
      UFmCal2.Show 0
      End If
   End Sub

P.S : sinon impressionnant le code, en passant par un calendrier créé de toutes pièces :)

Merci d'avance

Cordialement
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je n'était pas bien arrivé non plus, d'entrée, avec un double clic: ça entrait dans l'édition de la cellule ce qui empêchait l'affichage des calendriers. Alors comme je ne voyais pas l'intérêt de le faire sur un double clic plutôt que sur une sélection, je n'ai pas cherché à vérifier qu'il suffixait de passer à True l'argument Cancel transmis à cet évènement, si son modèle de procédure est implanté à l'aide des listes déroulantes qui surmontent la fenêtre de code, comme il se doit.

Je n'en reste pas moins convaincu qu'un seul calendrier calé par exemple une semaine avant la date du jour serait bien plus pratique et plus simple pour tout le monde.
 

Amilo

XLDnaute Accro
Re,

Dranreb, je pense que je vais opter pour 1 seul calendrier sur le mois entier.

Concernant le double clic, je vais voir si j'y arrive…., à passer l'argument Cancel de l'évènement à True :),
Je testerai dans la journée….

Edit : Ah oui @Dranreb , l'intérêt du double clic au lieu de la sélection est que ce fichier est utilisé par des débutants en Excel, ils ont tendance à taper "Entrée" au lieu de Tabulation pour passer vers les autres cellules de la même ligne.
Si la personne tape Entrée cela va déclencher inutilement le calendrier pour la ligne en dessous alors que la ligne précédente doit être complétée sur toute les zones de la ligne.

Je sais qu'il est possible de modifier le sens de déplacement dans les options d'Excel mais voilà je trouvais que c'est moins contraignant avec le double clic pour les raisons que j'ai évoquées

Merci encore pour votre aide

Cordialement
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Il suffit de sélectionner 'Worksheet' dans la liste 'Objet', de gauche, et 'BeforeDoubleClick' dans la 'Procédure', de droite, pour avoir un modèle correctement implanté de la procédure.
L'ensemble du code est considérablement plus simple avec un seul calendrier initialement calé sur la date du jour :
VB:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Not Intersect(Target, Me.Range("C5:C20")) Is Nothing And Target.CountLarge = 1 Then
      UFmCalenS.Posit Target, 1, 0.9
      Target.Value = UFmCalenS.Saisie(Titre:="Quand", DInit:=Date, Défaut:=Target.Value)
      Cancel = True
      End If
   End Sub
Mais, s'il s'agit de saisir, comme je crois l'avoir compris, une date récente passée, ne vaudrait-il pas mieux prendre DInit:=Date - 7, pour être dans le mois précédent en début de mois ?
 
Dernière édition:

Amilo

XLDnaute Accro
Re,

merci beaucoup Dranreb, pas certain que j'aurais réussi seul
Sinon j'ai édité mon dernier message en réponse à votre question sur le double clic :)

Edit : je viens de tester et cela fonctionne avec le double clic :)

Bon dimanche
 

Discussions similaires

Statistiques des forums

Discussions
314 773
Messages
2 112 783
Membres
111 660
dernier inscrit
tekbe