comptage de jours Excel Vs Visual Basic

Le
Thierry
Bonjour,

Selon que j'utilise Excel ou Visual Basic, le nombre de jours n'est pas le
même.
Voici les formules utilisées :

Excel ( 3376 jours )
= DATEDIF(AUJOURDHUI();"03/01/2018";"d")

Visual Basic ( 3375 jours )
Dim firstDate As Date
firstDate = #1/3/2018#
Me.Label1.Text = DateDiff(DateInterval.Day, Now, firstDate) & " jours."

Quelqu'un aurait-il une explication sur cette différence ?

Merci et bonne journée.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #17437001
Bonjour.
MsgBox DateDiff("d", Now, firstDate) & " jours."
donne 3376
--
Cordialement.
Daniel
"Thierry" news:
Bonjour,

Selon que j'utilise Excel ou Visual Basic, le nombre de jours n'est pas le
même.
Voici les formules utilisées :

Excel ( 3376 jours )
= DATEDIF(AUJOURDHUI();"03/01/2018";"d")

Visual Basic ( 3375 jours )
Dim firstDate As Date
firstDate = #1/3/2018#
Me.Label1.Text = DateDiff(DateInterval.Day, Now, firstDate) & " jours."

Quelqu'un aurait-il une explication sur cette différence ?

Merci et bonne journée.




FFO
Le #17436991
Salut Thierry

Je n'ai pas pu essayer exactement ton code n'ayant pas tous les éléments
nécessaire à son exécution

Mais en le modifiant quelque peu ainsi j'obtiends le même résultat qu'avec
la formule

firstDate = #1/3/2018#
Range("B1") = DateDiff("d", Now, firstDate) & " jours."

soit : 3376

Essaies de t'en inspirer et dis moi !!!!
Thierry
Le #17437961
Bonjour et merci à tous les deux pour vos réponses.
Mais je n'ai pas été assez précis dans ma question.
Lorsque je mentionnais Visual Basic, il s'agissait de Visual Basic 2008
Express et je confirme bien que le résultat n'est pas le même qu'en VBA
Excel.
Je trouve cela assez gênant et si quelqu'un a une explication, je suis
intéressé...
Merci encore et bonne fin de journée.


"FFO" discussion :
Salut Thierry

Je n'ai pas pu essayer exactement ton code n'ayant pas tous les éléments
nécessaire à son exécution

Mais en le modifiant quelque peu ainsi j'obtiends le même résultat qu'avec
la formule

firstDate = #1/3/2018#
Range("B1") = DateDiff("d", Now, firstDate) & " jours."

soit : 3376

Essaies de t'en inspirer et dis moi !!!!


Modeste
Le #17441151
Bonsour® Thierry avec ferveur ;o))) vous nous disiez :

Bonjour,

Selon que j'utilise Excel ou Visual Basic, le nombre de jours n'est
pas le même.
Voici les formules utilisées :

Excel ( 3376 jours )
= DATEDIF(AUJOURDHUI();"03/01/2018";"d")

Visual Basic ( 3375 jours )
Dim firstDate As Date
firstDate = #1/3/2018#
Me.Label1.Text = DateDiff(DateInterval.Day, Now, firstDate) & "
jours."




les fonctions EXCEL
pour feuilles de calculs DATEDIF
pour VBA DateDiff
(remarquez le F final en difference)
n'ont aboslument aucun rapport ni en terme de fonctionnalités, ni en terme syntaxe.
par ailleurs DATEDIF est une fonction cachée qui n'est plus documenté dans l'aide depuis au moins Excel 97

par contre l'utilisation de DateDiff sous VBA EXCEL ne devrait causé aucun souci par rapport à VB
VBA étant un sous ensemble de VB



--
--
@+
;o)))
FdeCourt
Le #17441311
Salut,
Une supposition, qui vaut ce quelle vaut ;)
mais n'y auarait-il pas un problème avec le Now.
Il doit donner une date, mais aussi une heure précise, par exemple
maintenant correspondrait à 39727,9339496528
En fonction de la manière dont tu arrondis, tu doit te trouver avec
des chiffres différents (donc, en fonction de l'heure de la journée à
laquelle est lancé le programme, le résultat pourrait être différen t)
En faisant le calcul ainsi (sous Excel) et en mettant les cellules en
format nombre
=MAINTENANT() > 39727,93395 (soit 06/10/2008 22:24:53)
1/3/2018 > 39727,93395

Je trouve 3375 jours

Par contre, en mettant :
= aujourdhui()
et 1/3/2018, je trouve bien 3376

Dans ton programme VB, tu devrais transformer Now en une date sans le
détail des heures (du genre (en vba en tout cas) :
DateSerial(Year(Date), Month(Date), Day(Now))

Cordialement,

F.
Thierry
Le #17443821
Bonjour et merci à ceux qui m'ont répondu.
La solution : Dans Visual Basic 2008 Express, j'ai remplacé Now par Today
et le résultat concorde alors avec celui d'Excel.
Bonne journée.

"Thierry" a écrit :

Bonjour,

Selon que j'utilise Excel ou Visual Basic, le nombre de jours n'est pas le
même.
Voici les formules utilisées :

Excel ( 3376 jours )
= DATEDIF(AUJOURDHUI();"03/01/2018";"d")

Visual Basic ( 3375 jours )
Dim firstDate As Date
firstDate = #1/3/2018#
Me.Label1.Text = DateDiff(DateInterval.Day, Now, firstDate) & " jours."

Quelqu'un aurait-il une explication sur cette différence ?

Merci et bonne journée.




Publicité
Poster une réponse
Anonyme