ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
17 févr. 2006 à 01:52
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
17 févr. 2006 à 05:25
Hi guys,
Pour une fois que c'est moi qui pose une question à la con...
En fait, moi j'ai un problème d'ordre général sous Excel (perso j'ai la version 2000 mais qu'importe) concernant un de mes plus gros défaut : la manipulation des dates (via les formules)...
Pour commencer j'aimerais savoir si quelqu'un a une explication pour les valeurs numérique des dates (vous savez, lorsqu'on passe du type cellulaire Date à Standard).
Ce que j'aimerais faire, comme tout le monde, c'est :
Additionner à une date : des jours, des mois et des années.
Soustraire une date à une autre afin, par exemple, de connaître la différence en jour, mois et années.
Après, j'aimerais inclure à tout ça l'heure.
Mais lorsque que je parles de jours, de mois et d'années, si possible, obtenir ça d'un coup (i.e. dans un format "date différentielle" en quelque sort!).
Il serait même bon de faire un tuto sur ce point que je trouve, personnellement, délicat tant sous Office que sous VB !
Merci par avance
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 févr. 2006 à 02:52
Salut
Les dates de Excel sont calculées depuis le 01/01/1900 ou 1904 selon les options.
Le chiffre qui apparait dans une cellule quand on tranforme une date en standard correspond au nombre de jours entre 01/01/1900 et la date, soir 38764 aujourd'hui.
En VB, c'est le nomnbre que tu obtiens avec la fonction
Nombre = DateDiff( "d", "01/01/1900", "16/02/2006") + 1
Va comprendre pourquoi le + 1 ... bizarrement les calculs d'Excel et de VB ne donnent pas la même chose.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 17 févr. 2006 à 03:48
d'après ce que j'ai compris Excel donne le nombre de jours depuis le
veille du 1er janvier 1900 (ou 1904) donc du 0 janvier 1900 ???
(ou plutôt le 31/12/1899)
et en Vb c'est depuis le 30/12/1899
d'où cette différence de 1
Dim dt1 As Date
Dim dt2 As Date
dt1 = "30/12/1899"
dt2 = "16/02/2006"
MsgBox DateDiff("d", dt1, dt2) --> le même que Clng (dt2)
- DateDiff() permet de calculer une différence de dates
une différence de Date n'est pas une date mais une durée
cette durée ne peut donc pas être utilisée en tant que Date pour être
transformée en jour, mois, année
donc DateDiff() ne permet pas de connaître la différence en jour, mois et année,
il faut faire la différence jour-jour, mois-mois, année-année ou l'inverse et
reporter la retenue, comme à l'école ...
- DateAdd() permet d'ajouter une durée à une date
on obtient bel et bien une date
- les temps en Vb sont aussi en type date mais limité à < 24 heures
ce qui explique ?? peut être le début fixé au 30/12/1899 (quoique ça fait 2 jours)
Dim dt As Date
dt = 0: MsgBox
dt
'c'est un temps
dt = 0.999991: MsgBox dt
'c'est un temps
au dela c'est une date:
dt = 1: MsgBox dt
- Une date est un numérique (type Double)
le nombre de jours est la partie entière
les heures, minutes,secondes sont la partie décimale
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 17 févr. 2006 à 04:07
Merci beaucoup pour toutes ces précisions
Donc, si j'ai bien compris, on peut parfaitement intégrer les heures dans ces fonctions puisqu'elles utilisent des types Date (même s'ils sont Variants) ? C'est bien ça ?
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
Vous n’avez pas trouvé la réponse que vous recherchez ?
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 17 févr. 2006 à 04:07
Merci beaucoup pour toutes ces précisions
Donc, si j'ai bien compris, on peut parfaitement intégrer les heures dans ces fonctions puisqu'elles utilisent des types Date (même s'ils sont Variants) ? C'est bien ça ?
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 17 févr. 2006 à 05:25
Merci beaucoup Gobillot pour ton effort. Je vais tâcher d'étudier cela de plus près... Je maitrise pas encore vraiment tout ça... Pi faut dire aussi que moi et les dates c'est un peu comme toi et Excel ... y'a incompatibilité!
Mais merci encore à tous deux, ça va m'être bien utile
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )