Les boîtes de dialogue

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

        Ce contrôle permet grâce à un calendrier de saisir des dates de début
         et fin pour les utiliser dans votre application.
        Exemple trouvé dans livre Excel 2000 & Visual Basic pour Applications 6
        disponible chez Amazon.fr

Ajout du contrôle Calendar

        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 Calendar Control 8.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 (fmContratDates)

        Le code

        Code lançant l'ouverture de la boîte de dialogue

 
Sub AfficheCalendar()
      fmContratDates.Show
End Sub

        Code d'ouverture du formulaire

 
Private Sub UserForm_Initialize()
      cboDateAValider.AddItem ("Date de début")
      cboDateAValider.AddItem ("Date de fin")
      cboDateAValider.ListIndex = 0
      Calendrier.Value = Date
      Calendrier.SetFocus
End Sub

        Code lié au choix des dates sur le contrôle Calendar

 
Private Sub Calendrier_Click()
' Choix d'une date sur le calendrier
If cboDateAValider.ListIndex = 0 Then
      DateDebut.Value = Calendrier.Value
      cboDateAValider.ListIndex = 1
Else
      DateFin.Value = Calendrier.Value
      End If
End Sub

        Code des boutons

       1 / Bouton Valider (cmdValider)
 
Private Sub CmdValider_Click()
' Vérification de la validité des informations
If DateDebut.Value = "" Then
MsgBox "Vous devez spécifier une date de début.", vbOKOnly + vbCritical, "Contrat d'auteur"
      Exit Sub
ElseIf DateFin.Value = "" Then
      MsgBox "Vous devez spécifier une date de fin.", vbOKOnly + vbCritical, "Contrat d'auteur"
      Exit Sub
ElseIf DateValue(DateFin) - DateValue(DateDebut) <= 0 Then
      MsgBox "Vous devez spécifier une date de début antérieure à la date de fin.", _
      vbOKOnly + vbCritical, "Contrat d'auteur"
      Exit Sub
ElseIf DateValue(DateFin) - DateValue(DateDebut) < 40 Then
Dim Continuer As Integer
Continuer = MsgBox("Vous avez indiqué une date de début à seulement " _
      & DateValue(DateFin) - DateValue(DateDebut) & " jours de la date de fin. _
      Valider cette date ?", vbYesNo + vbQuestion, "Valider la date de début ?")
If Continuer = vbNo Then Exit Sub
End If
fmContratDates.Hide
' Affichage des dates sélectionnées
MsgBox (" Les dates de Début et Fin sont : " & DateDebut.Value & " et " & DateFin.Value)
' Mise à jour des paramètres
DateDebut.Value = ""
DateFin.Value = ""
cboDateAValider.ListIndex = 0
Calendrier.Value = Date
Calendrier.SetFocus
End Sub

        2 / Bouton Annuler (cmdAnnuler)
 
Private Sub CmdAnnuler_Click()
Dim Rep As Byte
Rep = MsgBox("Etes-vous sûr de vouloir fermer l'application en cours ?", _
      vbYesNo + vbQuestion, "Annuler l'application en cours ?")
If Rep = vbNo Then
      Exit Sub
      End If
      Me.Hide
      End
End Sub

        3 / Bouton Retour (cmdRetour)
 
Private Sub CmdRetour_Click()
MsgBox "Vous allez fermer l'application"
Me.Hide
End Sub

Retour au début de document

Retour au début du document