Fonction VBA : datePicker
La fonction VBA datePicker ouvre une boîte de dialogue sous forme de calendrier permettant à l'utilisateur de choisir une date.
Le calendrier est disponible dans 3 styles différents, un bouton "Aujourd'hui" peut être affiché pour sélectionner la date du jour, les numéros de semaines peuvent être affichés à droite du calendrier et il est également possible de définir une date sélectionnée par défaut.
Cette fonction ne renvoie rien si l'utilisateur n'a pas choisi de date.
Utilisation :
datePicker
ou
datePicker(date_initiale, style, bouton_ajd, no_semaine, titre)
(tous les arguments sont facultatifs)
Exemple d'utilisation simple
Vous avez la possibilité d'utiliser cette fonction sans entrer d'arguments :
Sub exemple()
maDate = datePicker
End Sub
Vous obtiendrez alors le calendrier par défaut :

La fonction datePicker renverra ensuite une date (si l'utilisateur a validé son choix) :
Argument 1 (date_initiale)
Par défaut, la date du jour est automatiquement sélectionnée mais vous avez la possibilité de définir la date qui doit être sélectionnée à l'ouverture de datePicker.
Dans cet exemple, lorsque l'utilisateur double-clique sur la cellule A1, la fenêtre devra s'ouvrir et permettre de modifier cette date :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then 'Si cellule A1
Cancel = True
maDate = datePicker(Range("A1"))
If maDate <> "" Then 'Si date choisie par l'utilisateur
Range("A1") = maDate
End If
End If
End Sub

Argument 2 (style)
Le style par défaut est trop grand pour vous ? Pas d'inquiétudes vous pouvez choisir l'un des 2 autres ...
Pour afficher le style par défaut, laissez cet argument vide (ou entrez la valeur 0) :
maDate = datePicker
maDate = datePicker(, 0)

Pour afficher le style suivant entrez la valeur 1 en second argument :
maDate = datePicker(, 1)

Pour afficher le dernier style entrez la valeur 2 en second argument :
maDate = datePicker(, 2)

Argument 3 (bouton_ajd)
Par défaut, la date du jour est sélectionnée dans le calendrier mais vous avez malgré tout la possibilité d'ajouter un bouton aujourd'hui qui va vous permettre de sélectionner la date du jour en 1 clic.
Pour afficher ce bouton, entrez la valeur 1 en troisième argument :
maDate = datePicker(, , 1)

Argument 4 (no_semaine)
Vous avez la possibilité d'afficher les numéros de semaine ISO en entrant la valeur 1 en quatrième argument :
maDate = datePicker(, , , 1)

Argument 5 (titre)
Le dernier argument vous permet de modifier le titre de l'UserForm :
maDate = datePicker(, , , , "Exemple de titre")
Combiner les options
Vous pouvez bien entendu définir plusieurs arguments à la fois pour obtenir le résultat souhaité :
maDate = datePicker("1/1/2019", 2, 1, 1, "Démo Excel-Pratique")

Remarque : cette fonction nécessite l'installation du pack de fonctions XLP (un add-in gratuit pour Excel qui ajoute 92 nouvelles fonctions).