Macros
TDF LibreOffice Document Liberation Project Blogs communautaires Weblate Nextcloud Redmine Ask LibreOffice Donner
Comment entrer une date dans une cellule ?
Une date est un nombre de jours depuis la date origine[1]
On pourrait donc être tenté d'utiliser la propriété .Value d'une cellule pour entrer une date par programme. Toutefois :
- cela impose de savoir qu'au 21/04/2012 (par exemple), correspond le nombre 41020 avec la date origine par défaut,
- une date entrée ainsi par programme ne serait pas formatée par défaut au format date.
Utiliser la propriété .String de la cellule ne convient pas davantage car la date serait traitée comme un texte.
La solution est de recourir à la propriété .FormulaLocal qui nous permet d'entrer la date au format local, c'est-à-dire au format utilisé dans le tableur dans la langue de l'utilisateur (ne fonctionnera donc pas dans un contexte international).
L'exemple ci-dessous entre la date 21/04/2012 dans la cellule A1 :
Option Explicit
Sub LibOExemplesDate
dim LibOClasseur as object
dim LibOFeuille as object
dim LibOCellule as object
LibOClasseur = thiscomponent
LibOFeuille = LibOClasseur.sheets.getByName("Feuille1")
LibOCellule = LibOFeuille.getCellRangeByName("A1")
LibOCellule.formulaLocal = "21/04/2012"
End Sub
La propriété .FormulaLocal permet également d'entrer une formule dans la langue de l'utilisateur. Par exemple :
LibOCellule.formulaLocal = "=AUJOURDHUI()"
Pour lire une date contenue dans une cellule, nous utiliserons les différentes propriétés en fonction du besoin. Le tableau ci-dessous résume les cas de figure lorsque la cellule contient la date 21/04/2012 ou la formule AUJOURDHUI()[2]
Propriétés | Contenu de la cellule | |
---|---|---|
21/04/2012 | =AUJOURDHUI()[2] | |
.String | 21/04/2012 | 21/04/2012 |
.Value | 41020 | 41020 |
.Formula | 41020 | = TODAY() |
.FormulaLocal | 21/04/2012 | =AUJOURDHUI() |
Notes :