Macros/Calc/007/fr

Comment lier une cellule à un contrôle Calendrier (champ de date) ?
Contrairement à d'autres types de contrôles (Zone de texte par exemple), on ne peut lier les contrôles Champs de date (calendrier) à une cellule.

Cet exemple a pour objet de montrer comment procéder par macro pour obtenir ce résultat.

Nous utiliserons la propriété Champ de données du contrôle (en principe prévue pour associer un champ d'une source de données) pour stocker la référence de la cellule, comme nous le ferions pour un autre type de contrôle.

Nota : il serait également possible d'utiliser la propriété Complément d'information (Tag).



La procédure suivante est associée à l'événement Texte modifié du contrôle. La variable LibOEvent est passée par l'événement ; elle permet de :
 * "remonter" à la propriété DataField contenant la référence à la cellule (sous forme de texte).
 * "remonter" à la propriété Text contenant la date (au format texte) affichée dans le contrôle après modification.
 * La propriété formulaLocal permet d'insérer la date au format local (jj/mm/aaaa par exemple en français) ; le texte affiché dans le calendrier étant dans ce format aucune conversion n'est nécessaire.

Pour prévenir d'éventuelles erreurs d'exécution, la procédure comprend une gestion d'erreurs, notamment pour le cas où la référence à la cellule a été mal saisie.

Notes :


 * [[Media:FR.MACROS Calc 007 LierCalendrierCellule.ods|Télécharger un classeur exemple]]