Signaler

Selection de plusieurs dates dans un calendrier

Posez votre question cno2 - Dernière réponse le 17 juil. 2017 à 23:13 par cnon2
Bonjour,

J'aimerais pouvoir sélectionner plusieurs dates (avec des clics de souris successifs) dans un calendrier (monthview) autonome.
Je ne vois pas comment y arriver, le calendrier se fermant après le premier clic de souris sur une date du calendrier.
Je vous remercie vivement pour le temps que vous prendrez pour me répondre.

Meilleures salutations,
Utile
+0
plus moins
Bonjour,
quel VB?
  • VBS
  • VBA -> précisez:
    • Word
    • Excel
    • Access
    • Powerpoint
    • Autre
  • VB6 (ou antérieur, précisez)
  • VB.Net - précisez la Framework et ->
    • Winform
    • WPF

Donnez votre avis
Utile
+0
plus moins
https://msdn.microsoft.com/en-us/library/aa733656(v=vs.60).aspx

Je cite
Selecting A Range of Dates
You can use the MonthView control to display a contiguous range of dates, or to allow the user to select a date range. In order to extend the selection to more than one date, the MultiSelect property must be set to True. You can control the maximum number of days that may be selected by changing the value of the MaxSelCount property. By default, the maximum selection allowed is seven days.
The SelStart and SelEnd properties determine which days are selected. You can check the values of these properties to find out what range the user has selected. If only one date is selected, the two values will be the same. You can also set the values of these properties in code, which will cause a range of dates to become selected in the control. When setting the SelStart and SelEnd properties through code, you must observe the following rules:
The SelStart date must occur before the SelEnd date.

The selected range must contain the currently selected date. If necessary, you should set the Value property to one of the dates in the range before setting the SelStart and SelEnd values.

The number of dates included in the range cannot exceed the maximum range size as specified by MaxSelCount.
For example, to select the week before Halloween through code, you would use the following:
MonthView1.Value = "10/31/97"
MonthView1.MaxSelCount = 7
MonthView1.SelStart = "10/25/97"
MonthView1.SelEnd = "10/31/97"


Edit, c'est le contrôle de VB6, mais selon mes recherches c'est lui que l'on peut importer dans VBA.

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Donnez votre avis
Utile
+0
plus moins
Bonjour,

Merci infiniment pour votre réponse. Désolé pour mon post sur un autre fil. Je n'avais pas fait attention aux différents boutons sur la page reçu par mail.
Je pense vous avoir induit en erreur. En effet, je n'ai aucune propriété que je puisse modifier comme vous le suggérez. Mon contrôle est un textbox avec un Dtpicker (Microsoft Windows Common Controls 2.6.0 avec un Mscomct2.ocs) et la seule modification possible est la maxdate et mindate. Dois-je importer ou récupérer un autre contrôle ?

Cdt,
Whismeril 9971Messages postés mardi 11 mars 2003Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 15 juil. 2017 à 10:12
Au départ tu parlais de monthVieview qui permet la sélection de plusieurs dates successives, ce qui n'est peut être pas ton besoin exact.

Maintenant, tu parles de dtpicker, qui, à priori, ne permet la sélection que d'une seule date.

Donc si ton besoin est de choisir des dates successives, alors oui tu peux changer pour le monthview. Mais si ton besoin est de sélectionner des dates non éparpillées, alors il va te falloir trouver une autre option, un ListBox en mode MultiSelectExtend par exemple
http://www.commentcamarche.net/forum/affich-2254265-vba-excel-donnees-multiples-listbox
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour,

Merci pour votre réponse. J'ai effectivement besoin de sélectionner plusieurs dates successivement. Je parlais de monthview car je pensais que montview et Dtpicker était la même chose.Si je vous suis bien, je dois donc utiliser montview à la place de Dtpicker. Quel est le contrôle qu'il faut que j'installe alors dans Office 2016 ?

Cdt,
Donnez votre avis
Utile
+0
plus moins
Oups,

Désolé, j'ai posté plus vite que je n'aurais dû. J'ai bien le contrôle montview dans ma boite à outils. Merci encore pour vos précisions.

Cdt,
Donnez votre avis
Utile
+0
plus moins
Re bonjour,

Sans vouloir abusé ;P
Comment dois-je récupérer les différentes dates une fois celles-ci sélectionnées dans le calendrier ?
Je dois les copier dans une colonne d'un tableau xl.

Merci encore,
Cdt
Whismeril 9971Messages postés mardi 11 mars 2003Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 17 juil. 2017 à 17:07
Bonsoir,

dans ma citation plus haut, il y'a la date de début et la date de fin de la sélection, (je le rappelle, la sélection est continue).
Donc tu peux par exemple faire une boucle dans laquelle tu fais évoluer une date de "début" à "fin"
Répondre
Donnez votre avis
Utile
+0
plus moins
Merci pour ton retour.
Donc j'ai bien peur que mon pb de départ (sélection de dates multiples mais non contigües) ne soit pas solvable. En fait, l'utilisateur a besoin de choisir une date dans chaque semaine du mois. Si c'est le même jour, effectivement une boucle me permet d’incrémenter les différentes dates.
Mais je pensais vraiment qu'il était possible de récupérer le clic de souris sur la date choisie par l'utilisateur dans le calendrier.
Encore merci pour ton aide.
Donnez votre avis
Utile
+0
plus moins
Dans ce cas, une ListBox en mode MultiSelectExtend est plus adaptée.
Tu affiches toutes les dates du mois, l'opérateur les sélectionnes avec Shift ou Ctrl, et tu récupères le tableau de dates sélectionnées.

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Donnez votre avis
Utile
+0
plus moins
Merci pour tous vos conseils.
Je vais essayer de préparer quelque chose comme ça.

Cdt
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !