Nom de la procédure :
Lorsque tu clic sur "Terminer l'enregistrement" une boite de dialogue "Macros OpenOffice.org Basic" apparait.
Le 1er champ est le nom, "Main" par défaut. Mieux vaut le personnaliser, DateJour par exemple puis bouton enregistrer
Tu remarqueras l'emplacement de main : Mes Macros / Standard / Module 1
Cela te garanti de disposer de la macro quel que soit le classeur
A droite, la liste des macros déjà enregistrées, Main macro vide existant par défaut.
Petit hic sur mon point 1 :
La cellule prend la formule Aujourdhui() et non la valeur.
Résultat, en ouvrant le classeur le lendemain tu te retrouve avec la nouvelle date du jour.
Solution :
1) enregistrer une macro mettant la date du jour dans la cellule qui a le focus : menu outils/macros/enregistrer une macro
- mettre la cellule au format date
- donner à la cellule la formule =AUJOURDHUI()
- copier la cellule
- collage spécial, ne laisser coché que Date&Heure et Format
Puis clic sur "Terminer l'enregistrement"
terminer enregistrement macro, puis lui donner un nom explicite
Voici le code de la macro :
sub DateJour
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "NumberFormatValue"
args1(0).Value = 30
dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "=AUJOURDHUI()"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args4(5) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Flags"
args4(0).Value = "DT"
args4(1).Name = "FormulaCommand"
args4(1).Value = 0
args4(2).Name = "SkipEmptyCells"
args4(2).Value = false
args4(3).Name = "Transpose"
args4(3).Value = false
args4(4).Name = "AsLink"
args4(4).Value = false
args4(5).Name = "MoveMode"
args4(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args4())
end sub
@+