Les boîtes de dialogue

Le contrôle DTPicker (calendrier).Retour au menu Contrôles divers

        Ce contrôle permet grâce à un calendrier de saisir des dates de début et des dates de fin
        de façon simple et sans erreur possible, pour les utiliser ensuite dans votre application.
        Cet exemple a été réalisé sous Excel 2000.

Aspect du contrôle

Ajout du contrôle DTPicker

        1 - Activer un UserForm dans le Visual Basic Editor.
        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.

La boîte à outils

        Le Userform (frmConges)

        Le code

        Code lançant l'ouverture du formulaire

 
Sub AfficheConges()
      frmConges.Show
End Sub

        Codes d'ouverture du formulaire

 
Private Sub UserForm_Initialize()
      ' 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

 
Private Sub UserForm_Activate()
      ' 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

        Code lié à l'évenement Change sur le contrôle DTPicker2

 
Private Sub DTPicker2_Change()
' 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

        Code des boutons

       1 / Bouton Valider (cmdValider)
 
Private Sub CmdValider_Click()
      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

        2 / Bouton Annuler (cmdAnnuler)
 
Private Sub CmdAnnuler_Click()
      Me.Hide
End Sub

Retour au début de document

Retour au début du document