Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

multi date picker

  • Initiateur de la discussion Initiateur de la discussion fdoyen
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fdoyen

XLDnaute Nouveau
Bonjour,

je cherche à sélectionner plusieurs dates (qui ne se suivent pas) sur 12 mois sur un calendrier et à renvoyer le résultat dans un tableau dans l'ordre chronologique.
j'ai regardé l'objet dtpicker mais je n'arrive pas à récupérer plus d'une date.
y a t il un autre objet disponible, ou un bout de code vb qui pourrait m'aider ?

d'avance merci de votre aide
Bien cordialement
Franck
 
Re : multi date picker

Bonjour,

Une piste avec la démarche qui suit
1) Créez un UserForm1 avec un DTPicker1 et un CommandButton1
2) Dans Excel, une feuille nommée "test"
3) Copiez le code suivant dans la fenêtre de code du UserForm
Code:
'### Constante à adapter ###
Const NB_DATES As Long = 3 'Borne limitant la dimension du tableau (à adapter)
'###########################

Dim T(1 To NB_DATES)  'Déclaration du tableau avec une portée niveau module

Private Sub DTPicker1_CloseUp()
Dim cpt&
'---
Do Until T(NB_DATES) <> ""
  cpt& = cpt& + 1
  If T(cpt&) = "" Then
    T(cpt&) = DTPicker1.Value
    Exit Do
  End If
Loop
End Sub

Private Sub CommandButton1_Click()
Dim SL As Object
Dim i&
Dim A$
Dim R As Range
'--- Trie les éléments du tableau du plus petit au plus ---
'--- grand et affecte les éléments dans une SortedList  ---
Set SL = CreateObject("System.Collections.SortedList")
On Error Resume Next    'Pour éviter les doublons
For i& = 1 To UBound(T)
  If T(i&) <> "" Then SL.Add T(i&), T(i&)
Next i&
Err.Clear
On Error GoTo 0


'### Exemples d'utilisation ###
If SL.Count > 0 Then
  '--- Affichage des éléments de la SortedList dans une MsgBox ---
  For i& = 0 To SL.Count - 1
    A$ = A$ & SL.GetKey(i&) & vbLf
  Next i&
  MsgBox A$, , "Nombre de dates limité à " & NB_DATES
  '--- Inscription des éléments de la SortedList dans une feuille ---
  Set R = Sheets("test").[a1]
  For i& = 0 To SL.Count - 1
    R = SL.GetKey(i&)
    Set R = R.Offset(1, 0)
  Next i&
End If
'##############################

End Sub

J'utilise Set SL = CreateObject("System.Collections.SortedList") et je n'ai pas de problème sur ma machine.
Par contre, je ne sais pas si cela peut créer des dysfonctionnements sur une autre machine.
Merci de me tenir au courant.
 

Pièces jointes

Re : multi date picker

Bonjour,
Sur mon PC (W7 64bits, Excel 2010) Calendrier AutonomeXDates.xlsm ‎et Monthview affichent "Erreur automation", problème de librairie sans doute ou MSCOM....OCX

Voici une solution avec un calendrier sans aucune librairie supplémentaire nécessaire.
Je l'ai adaptée pour faire 2 type de sélections :
- sélection simple : écriture de la date dans la cellule du double-clic
- sélection multiple : affichage dans une Listbox et sauvegarde dans la feuille PARAM pour une utilisation ultérieure.

Cordialement.
Robert
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…