OVH Cloud OVH Cloud

calcul d'un nombre de jours

6 réponses
Avatar
sunguess
bonjour,

Savez vous comment peut on faire pour calculer le nombre de jours entre une
date et le 31 decembre de la même année en tenant compte des années
bissextile?

programmation en VBA, pas en formule excel.

D'avance merci.

6 réponses

Avatar
Daniel
Bonsoir.
essaie :
Dim NbreJours As Integer
NbreJours = DateDiff("d", [D2], DateSerial(Year(Date), 12, 31))
D2 étant une date quelconque de l'année.
Cordialement.
Daniel
"sunguess" a écrit dans le message de news:
421651fa$0$15728$
bonjour,

Savez vous comment peut on faire pour calculer le nombre de jours entre
une date et le 31 decembre de la même année en tenant compte des années
bissextile?

programmation en VBA, pas en formule excel.

D'avance merci.



Avatar
sunguess
merci
"Daniel" a écrit dans le message de news:
uK6$
Bonsoir.
essaie :
Dim NbreJours As Integer
NbreJours = DateDiff("d", [D2], DateSerial(Year(Date), 12, 31))
D2 étant une date quelconque de l'année.
Cordialement.
Daniel
"sunguess" a écrit dans le message de news:
421651fa$0$15728$
bonjour,

Savez vous comment peut on faire pour calculer le nombre de jours entre
une date et le 31 decembre de la même année en tenant compte des années
bissextile?

programmation en VBA, pas en formule excel.

D'avance merci.







Avatar
GD
Bonsour® Daniel ,
si l'on considère que l'on reste dans la même année :
NbreJours = DateSerial(Year([D2]), 12, 31))-[D2]

Attention à-propos de DateDiff # DATEDIF !!!
DateDiff VBA est documentée dans l'aide alors que DATEDIF ne l'est pas !!

le DateDiff VBA (avec 2 "f") ne fonctionne absolument pas comme le DateDif
feuille de calcul (1 seul "f")

je n'ai pas encore réussi à formuler en VBA via DateDiff cette difference en
Années mois jours
sauf avec le Evaluate DateDif (1 "f")
????
et pourtant AV et Daniel.M y ont regardé ;o)))
Schmilblick[ le 9/02
@+



wrote:
Bonsoir.
essaie :
Dim NbreJours As Integer
NbreJours = DateDiff("d", [D2], DateSerial(Year(Date), 12, 31))
D2 étant une date quelconque de l'année.
Cordialement.
Daniel
"sunguess" a écrit dans le message de news:
421651fa$0$15728$
bonjour,

Savez vous comment peut on faire pour calculer le nombre de jours
entre une date et le 31 decembre de la même année en tenant compte
des années bissextile?

programmation en VBA, pas en formule excel.

D'avance merci.




Avatar
Daniel.M
Bonsoir,

Dim NbreJours As Integer
NbreJours = DateDiff("d", [D2], DateSerial(Year(Date), 12, 31))
D2 étant une date quelconque de l'année.



On peut également avoir recours à une simple soustraction:

NbreJours = DateSerial(Year(Date), 12, 31) - Range("D2")

Salutations,

Daniel M.

Avatar
Jacquouille
Bonjour
Les dates m'ont toujours laissé sur ma faim, voire mi-figue, mi-raisin.
Cependant, si j'ai une adte en A1 et une atre en A2 et que je fais = A2-A1,
puis que je formate la réponse en Nombre, il me donne les nb de jours?
quelque soit le nombre de sexes de l'année.
Pourquoi donc tant de complications?
Jacques, soucieux d'apprendre.

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
Jacquouille.

"Daniel.M" a écrit dans le message de
news: O%
Bonsoir,

Dim NbreJours As Integer
NbreJours = DateDiff("d", [D2], DateSerial(Year(Date), 12, 31))
D2 étant une date quelconque de l'année.



On peut également avoir recours à une simple soustraction:

NbreJours = DateSerial(Year(Date), 12, 31) - Range("D2")

Salutations,

Daniel M.





Avatar
Daniel.M
Cependant, si j'ai une adte en A1 et une atre en A2 et que je fais = A2-A1,
puis que je formate la réponse en Nombre, il me donne les nb de jours?


Oui.

quelque soit le nombre de sexes de l'année.


Oui.

Une date correspond à un numéro sériel commençant en janvier 1900 (pour
calendrier 1900) et s'incrémentant de 1 à chaque jour.
Si tu soustrais 2 numéros sériels, tu trouves la différence entre les 2.


Pourquoi donc tant de complications?


Lesquelles?
Soit que le requérant place ses 2 dates sur sa feuille (donc, le 31 décembre
itou) et fasse la soustraction, soit qu'il génère le 31 décembre de l'année
courante et fasse la soustraction.


En passant, s'il veut le 31 décembre de la même année que la date en D2 (et non
pas l'année courante) , ça donne:

NbreJours = DateSerial(Year(Range("D2")), 12, 31) - Range("D2")

Salutations,

Daniel M.