Bonjour,
Je me suis créé un formulaire où une date est calculée en fonction d'une
autre, dans 2 champs de date (DateDebut et DateFin), avec une petite macro
appelée sur "texte modifié" ou "Réception de focus" que voici:
Option Explicit
Dim oDocument As Object, oForm As Object
[ ... ]
sub DateFin
oDocument = ThisComponent
oForm = oDocument.DrawPage.Forms.Standard
dim vDate as double
dim vDateFin as double
dim vYear as double, vMonth as double, vDay as double
if oForm.DateDebut.date>0 then
vDate= cdatefromiso(oForm.DateDebut.date)
vDateFin =dateserial (year (vdate)+1, month (vdate), day (vdate))-2
oForm.DateFin.date = cdatetoiso(vDateFin)
oForm.updateDouble(oForm.findColumn ("DATEFIN"), vDateFin)
end if
end sub
ma question porte sur la ligne qui est destinée à ajouter 1 an à DateDebut:
vDateFin =dateserial (year (vdate)+1, month (vdate), day (vdate))-2
Pourquoi suis-je obligé d'enlever 2 jours pour avoir la date correcte à "+ 1
an"?
Sans correction, j'obtiens systématiquement comme date à 1 an, la date de
début + 1 an et 2 jours (20/06/2005 -> 22/06/2006).
Autre question: pourquoi j'obtiens une erreur pour les 2 premiers jours du
mois si j'écris:
vDateFin =dateserial (year (vdate)+1, month (vdate), day (vdate)-2) ?
Merci de m'éclairer
Amicalement
Grégoire