Le contrôle DTPicker (calendrier).
Ce contrôle permet grâce à un calendrier de saisir des dates de début
et des dates de fin
Ajout du contrôle DTPicker
1 - Activer un UserForm dans le Visual Basic Editor.
La boîte à outils
Codes d'ouverture du formulaire
Code lié à l'évenement Change sur le contrôle DTPicker2
Code des boutons
1 / Bouton Valider (cmdValider)
2 / Bouton Annuler (cmdAnnuler)
de façon simple et sans erreur possible, pour les utiliser ensuite dans votre application.
Cet exemple a été réalisé sous Excel 2000.
2 - Faites un clic droit sur la boîte à outils et sélectionnez Contrôles
supplémentaires.
3 - Dans la liste déroulante, sélectionnez Microsoft Date and Time Picker Control, version 6.0
4 - Cliquez sur OK pour fermer la boîte de dialogue et ajoutez le contrôle
dans la boîte à outils.
Code lançant l'ouverture du formulaire
frmConges.Show
End Sub
' Définir butée mini pour contrôle Date début (DTPicker1)
Me.DTPicker1.MinDate = Now - 60
' Définir butée maxi pour contrôle Date fin (DTPicker2)
Me.DTPicker2.MaxDate = Now + 365
End Sub
' Remplissage des 2 listes déroulantes (Nom agent et type de congés)
Me.cboAgents.RowSource = "Congés!B7:B21"
Me.cboConges.RowSource = "Congés!B24:B31"
' Activer le premier enregistrement de chaque liste déroulante
Me.cboAgents.ListIndex = 0
Me.cboConges.ListIndex = 0
' Définir la date affichée par défaut dans chaque contrôle DTPicker
Me.DTPicker1.Value = Now
Me.DTPicker2.Value = Now
End Sub
' Récupération des dates sélectionnées
MyDateDebut = DTPicker1.Value
MyDateFin = DTPicker2.Value
If MyDateFin <= MyDateDebut Then
MsgBox "La date de fin ne peut être inférieure à la date de début"
DTPicker2.SetFocus
End If
End Sub
MyDateDebut = DTPicker1.Value
MyDateFin = DTPicker2.Value
' Dans le cas où le choix est effectué sur le DTPicker1
If MyDateFin <= MyDateDebut Then
MsgBox "La date de fin ne peut être inférieure à la date de début"
DTPicker1.SetFocus
Else
Unload Me
' Mise en place des données dans la feuille BaseCongés
Sheets("BaseCongés").Cells(65536, 1).End(xlUp).Offset(1, 0).Value = Me.cboAgents.List _
(Me.cboAgents.ListIndex)
Sheets("BaseCongés").Cells(65536, 2).End(xlUp).Offset(1, 0).Value = Me.cboConges.List _
(Me.cboConges.ListIndex)
Sheets("BaseCongés").Cells(65536, 3).End(xlUp).Offset(1, 0).Value = Format(MyDateDebut, "mm/dd/yyyy")
Sheets("BaseCongés").Cells(65536, 4).End(xlUp).Offset(1, 0).Value = Format(MyDateFin, "mm/dd/yyyy")
End If
End Sub
Me.Hide
End Sub