Sélecteur de dates Excel

Comment insérer un sélecteur de date dans Excel?

Pour insérer un calendrier déroulant, nous utiliserons un contrôle ActiveX  qui est «Microsoft Date and Time Picker Control 6.0 (SP6)» .

Vous pouvez télécharger ce modèle Excel de sélecteur de date ici - Modèle Excel de sélecteur de date

Supposons que nous devions conserver les données des employés d'une entreprise. Il existe plusieurs champs comme

  • Code Emp
  • Nom de l'emp
  • Date d'adhésion à l'Emp
  • Département Emp

Pour saisir des données dans MS Excel, nous avons créé le format suivant.

Pour entrer la date d'adhésion Emp, nous devons créer un calendrier déroulant afin qu'il soit plus facile pour l'utilisateur de saisir les dates d'adhésion.

Pour créer un calendrier déroulant, les étapes sont indiquées ci-dessous - 

Nous devons insérer un «contrôle ActiveX» nommé «Microsoft Date and Time Picker Control 6.0 (SP6)» . Pour insérer, nous utiliserons la commande 'Insérer' sous le groupe 'Contrôles' dans 'Développeur'

Si l' onglet 'Développeur' n'est pas visible, voici les étapes à suivre pour le rendre visible.

  • Étape 1: Dans le menu 'Fichier' , choisissez 'Options'

  • Étape 2: Une boîte de dialogue nommée «Options Excel» s'ouvre. Choisissez «Personnaliser le ruban» sur le bord gauche de la boîte de dialogue. Case à cocher pour l' onglet "Développeur" et cliquez sur "OK" .

  • Étape 3: Nous pouvons maintenant voir l' onglet «Développeur» en fin de ruban.

  • Étape 4: Choisissez «Plus de contrôles» dans les contrôles ActiveX.

  • Étape 5: Choisissez «Microsoft Date and Time Picker Control 6.0 (SP6)» dans la liste et cliquez sur «OK» .

  • Étape 6: Cliquez n'importe où sur la feuille de calcul pour créer le calendrier déroulant.

  • Étape 7: Faites un clic droit sur «Date Picker» et choisissez «Propriétés» dans la liste.

  • Étape 8: Modifiez la valeur de «False» à «True» pour la propriété «CheckBox» afin que les valeurs nulles puissent également être acceptées. Fermez la boîte de dialogue "Propriétés" .

  • Étape 9: Cliquez à nouveau avec le bouton droit sur le sélecteur de date et choisissez «Afficher le code» dans le menu contextuel.

  • Étape 10: Dans 'Visual Basic Editor' , nous pouvons voir que du code est déjà écrit. Remplacez le code par le code suivant.

Code:

 Private Sub Worksheet_SelectionChange (ByVa l Target As Range) With Sheet1.DTPicker1 .Height = 20 .Width = 20 If not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True .Top = Target.Top .Left = Target.Offset (0, 1) .Left .LinkedCell = Target.Address Sinon .Visible = False End If End If End With End Sub 

  • Étape 11: La première instruction du code indique au compilateur MS Excel d'exécuter le code chaque fois qu'une nouvelle cellule est sélectionnée (la sélection est modifiée). La cellule sélectionnée est envoyée à la procédure secondaire en tant que «cible» .
 Private Sub Worksheet_SelectionChange (ByVal Target As Range)
  • Étape 12: Ces instructions définissent la hauteur et la largeur du sélecteur de date à 20 points dans Excel. On peut observer que nous avons utilisé l' opérateur «Avec» pour ne pas avoir besoin de faire référence à DTPicker1 encore et encore.
 Avec Sheet1.DTPicker1 .Height = 20 .Width = 20
  • Étape 13: La clause «If» suivante définit les critères selon lesquels si une cellule est sélectionnée dans la colonne «C» , seul le sélecteur de date obtient la visibilité. Nous avons utilisé la fonction 'Intersection' car cette fonction vérifie si nous avons sélectionné une cellule dans la colonne C, cette fonction renverra l'adresse sinon la valeur serait nulle.
 If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True 
  • Étape 14: La propriété 'Top' du sélecteur de date est définie comme égale à la valeur de propriété 'Top' de la cellule sélectionnée. Cela signifie que cela accompagnera la bordure supérieure de la cellule sélectionnée.
.Top = Cible.Top
  • Étape 15: Cette instruction définit la propriété gauche du sélecteur de date comme égale à celle de la cellule suivante à droite de la cellule sélectionnée (distance de la bordure gauche de la colonne D à l'extrême gauche de la feuille de calcul). Pour obtenir la référence de la cellule suivante à droite, nous avons utilisé la fonction 'Offset' avec 0 comme argument de ligne et 1 comme argument de colonne car cela obtiendra une référence à la cellule dans la colonne suivante.
.Left = Cible.Offset (0, 1) .Gauche
  • Étape 16: Cette instruction lie le sélecteur de dates à la cellule cible de sorte que la valeur sélectionnée dans le calendrier déroulant qui s'affiche dans la cellule.
.LinkedCell = Target.Address
  • Étape 17: L'instruction «Else» indique au compilateur de ne pas afficher le sélecteur de date lorsqu'une cellule à l'exception de celle de la colonne C est sélectionnée.
Sinon .Visible = Faux
  • Étape 18: À la fin, nous fermons le 'Si'
 Fin si 
  • Étape 19: Enfin, nous devons fermer 'Avec'
 Terminer par 
  • Étape 20: Maintenant, la procédure secondaire se terminera.
 End Sub 

Assurez-vous que nous enregistrons le fichier avec l' extension '.xlsm' car il enregistre le code VBA que nous avons écrit et nous pourrons exécuter ce code lorsqu'une cellule est sélectionnée dans la colonne C.

Désormais, chaque fois que nous sélectionnons une cellule dans la colonne «C», nous pouvons voir un calendrier déroulant dans le coin supérieur droit de la cellule sélectionnée. Nous pouvons ouvrir le calendrier déroulant en cliquant sur le symbole de la flèche vers le bas.

Nous devons cliquer sur n'importe quelle date du calendrier du mois sélectionné pour entrer cette date dans la cellule sélectionnée.

Nous pouvons changer de mois en mois précédent ou suivant en utilisant le bouton fléché placé à gauche et à droite du calendrier.

Nous pouvons également cliquer sur le mois pour choisir un mois dans le menu déroulant.

Nous pouvons également changer d'année en cliquant sur l'année puis en utilisant les flèches haut et bas pour choisir celle souhaitée.

Choses à retenir

  • «Microsoft Date and Time Picker Control 6.0 (SP6)» n'est pas disponible pour la version 64 bits de MS Excel.
  • Après avoir écrit le code VBA, nous devons enregistrer le fichier avec l'extension '.xlsm' (Excel Macro-Enabled Workbook), sinon le code VBA ne s'exécuterait pas.