Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comptage de jours Excel Vs Visual Basic

6 réponses
Avatar
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.

6 réponses

Avatar
Daniel.C
Bonjour.
MsgBox DateDiff("d", Now, firstDate) & " jours."
donne 3376
--
Cordialement.
Daniel
"Thierry" a écrit dans le message de
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.




Avatar
FFO
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 !!!!
Avatar
Thierry
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" a écrit dans le message de groupe de
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 !!!!


Avatar
Modeste
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)))
Avatar
FdeCourt
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.
Avatar
Thierry
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.