Oui c'est normal, tu as mis Duree As Date.
Pour excel une date est un nombre comme un autre, c'est juste que tu lui dis d'interpréter ça comme une date et il te l'affiche comme telle.
Pour excel (feuille) le jour 0 début du calendrier est le 00/01/1900 (oui, chez MS il y a un 0 janvier, nous on dira 31/12/1899)
Pour VBA le jour 0 est 30/12/1899, ce qui peut t'expliquer un résultat précédent
(oui, un jour de moins que dans excel, mais c'est pas trop grave. A partir du 01/03/1900 ils tombent d'accord sur le jour 61 vu que pour excel le 29/02 existe (à tort, ils ont dû programmer ça un jour de pot de départ et ils étaient fins bourrés).
Une date est un nombre décimal, la partie entière est la date (ou le nombre de jours pour une durée), la partie décimale est une fraction de jour représentant les heures.
0.25=6:00, 0.5=12:00, etc
Il n'y a pas de notion de temps, c'est une date que tu dois interpréter.
1,5 peut donc être :
1,5 jour
1 jour et 12:00
le 31/12/1900 12:00 dans VBA
le 01/01/1900 12:00 dans une cellule
Selon l'interprétation que tu dois en faire et l'endroit où tu le lis
Tu peux finir ton doliprane...
Pour en revenir à ton Duree = 30/12/1900 01:00:00
, à toi de l'interpréter selon l'usage que tu as prévu.
Le 30/12/1900 est le jour 365 de son calendrier, ça te fait donc 365 j 01:00
Tu aurais tout aussi bien pu mettre Dim Duree As Double et tu aurais lu 365.041666666672
jours
eric