Créer un sélecteur de date dans UserForm, Excel VBA

Créer un sélecteur de date dans UserForm, Excel VBA

Voici un code détaillé pour créer un sélecteur de date dans un UserForm en VBA Excel. Nous allons utiliser un ComboBox pour permettre à l’utilisateur de choisir une date à partir de plusieurs options (comme jour, mois, et année). 

Étapes : 

  1. Créer un UserForm avec un ComboBox et un Label pour afficher la date sélectionnée. 
  2. Remplir les ComboBox avec les jours, mois et années. 
  3. Ajouter des contrôles pour afficher la date sélectionnée dans un Label. 

Code complet en VBA : 

  1. Création du formulaire

Pour commencer, nous devons créer un UserForm avec : 

  • 3 ComboBox (pour les jours, mois, et années). 
  • 1 Label pour afficher la date choisie. 
  1. Code VBA dans le module UserForm :
' Dans le module UserForm 
Private Sub UserForm_Initialize() 
    ' Remplir le ComboBox des jours (1 à 31) 
    Dim i As Integer 
    For i = 1 To 31 
        ComboBoxJour.AddItem i 
    Next i 
    ' Remplir le ComboBox des mois (janvier à décembre) 
    ComboBoxMois.AddItem "Janvier" 
    ComboBoxMois.AddItem "Février" 
    ComboBoxMois.AddItem "Mars" 
    ComboBoxMois.AddItem "Avril" 
    ComboBoxMois.AddItem "Mai" 
    ComboBoxMois.AddItem "Juin" 
    ComboBoxMois.AddItem "Juillet" 
    ComboBoxMois.AddItem "Août" 
    ComboBoxMois.AddItem "Septembre" 
    ComboBoxMois.AddItem "Octobre" 
    ComboBoxMois.AddItem "Novembre" 
    ComboBoxMois.AddItem "Décembre" 
    ' Remplir le ComboBox des années (par exemple, de 2000 à 2024) 
    Dim year As Integer 
    For year = 2000 To 2024 
        ComboBoxAnnee.AddItem year 
    Next year 
End Sub 
Private Sub ComboBoxJour_Change() 
    ' Mettre à jour l'affichage de la date chaque fois qu'un jour est sélectionné 
    AfficherDate 
End Sub 
Private Sub ComboBoxMois_Change() 
    ' Mettre à jour l'affichage de la date chaque fois qu'un mois est sélectionné 
    AfficherDate 
End Sub 
Private Sub ComboBoxAnnee_Change() 
    ' Mettre à jour l'affichage de la date chaque fois qu'une année est sélectionnée 
    AfficherDate 
End Sub 
Private Sub AfficherDate() 
    ' Vérifier si tous les ComboBox ont une valeur sélectionnée 
    If ComboBoxJour.ListIndex <> -1 And ComboBoxMois.ListIndex <> -1 And ComboBoxAnnee.ListIndex <> -1 Then 
        ' Afficher la date sélectionnée dans le Label 
        LabelDate.Caption = ComboBoxJour.Value & " " & ComboBoxMois.Value & " " & ComboBoxAnnee.Value 
    End If 
End Sub

Explications : 

1. UserForm_Initialize

  • Cette procédure s’exécute lorsque le formulaire est initialisé. Elle remplit les trois ComboBox avec les jours, mois et années. 
  • Pour les jours, nous avons rempli le ComboBox avec les valeurs de 1 à 31. 
  • Pour les mois, nous avons rempli le ComboBox avec les noms des mois de janvier à décembre. 
  • Pour les années, nous avons rempli le ComboBox avec une plage d’années de 2000 à 2024. 

2. ComboBoxJour_Change, ComboBoxMois_Change, ComboBoxAnnee_Change

  • Ces procédures sont déclenchées lorsqu’une sélection est faite dans l’un des ComboBox. 
  • Chaque fois que l’utilisateur sélectionne un jour, un mois ou une année, la fonction AfficherDate est appelée pour mettre à jour le Label avec la date choisie. 

3. AfficherDate

  • Cette procédure vérifie si l’utilisateur a sélectionné un jour, un mois et une année (en vérifiant les indices des éléments sélectionnés dans les ComboBox). 
  • Si toutes les sélections sont valides, elle affiche la date sous le format « Jour Mois Année » dans le LabelDate. 

Interface de l’utilisateur : 

  • Lorsque l’utilisateur ouvre le formulaire, il voit trois ComboBox (pour les jours, mois et années), ainsi qu’un Label pour afficher la date choisie. 
  • Après avoir sélectionné un jour, un mois et une année, la date sélectionnée s’affiche dans le Label. 

Exemple de formulaire : 

Le LabelDate pourrait afficher par exemple : 
« 15 Février 2024 » si l’utilisateur choisit le jour 15, le mois de février et l’année 2024. 

Suggestions supplémentaires : 

  • Vous pouvez ajouter des fonctionnalités supplémentaires, comme valider que la date existe réellement (par exemple, février n’a pas toujours 31 jours). 
  • Ajouter des boutons pour valider ou annuler la sélection, si nécessaire. 

Conclusion : 

Ce code permet de créer un sélecteur de date dans un UserForm avec des ComboBox. Vous pouvez l’adapter selon vos besoins pour obtenir la date dans un format spécifique ou pour l’enregistrer dans une cellule d’Excel. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x