Dans VBA, je crée une boucle afin b'obtenir une liste de date et d'heure pour un mois.
Dans les variable VBA, l'heure suivante de 24/03/04 23:00 est bien 25/03/04 00:00,mais lors de l'écriture de cette date dans la feuille excel, j'obtient 24/03/04 00:00.
Pourquoi ???
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Dans VBA, je crée une boucle afin b'obtenir une liste de date et d'heure pour un mois.
Dans les variable VBA, l'heure suivante de 24/03/04 23:00 est bien 25/03/04 00:00,mais lors de l'écriture de cette date dans la feuille excel, j'obtient
24/03/04 00:00.
Pourquoi ???
En l'absence du code, ça va pas être facile !
AV
Dans VBA, je crée une boucle afin b'obtenir une liste de date et d'heure pour
un mois.
Dans les variable VBA, l'heure suivante de 24/03/04 23:00 est bien 25/03/04
00:00,mais lors de l'écriture de cette date dans la feuille excel, j'obtient
Dans VBA, je crée une boucle afin b'obtenir une liste de date et d'heure pour un mois.
Dans les variable VBA, l'heure suivante de 24/03/04 23:00 est bien 25/03/04 00:00,mais lors de l'écriture de cette date dans la feuille excel, j'obtient
24/03/04 00:00.
Pourquoi ???
En l'absence du code, ça va pas être facile !
AV
Nicolas B.
Salut,
Comme ceci, ça fonctionne : Sub ListeDate() Dim D As Double D = DateSerial(2004, 6, 1) While Month(D) = Mois i = i + 1 Cells(i, 1) = D D = D + 1 / 24 Wend End Sub
La macro ne marche plus si on définit D comme une variable Date...
A+ -- Nicolas B.
Bonjour,
Dans VBA, je crée une boucle afin b'obtenir une liste de date et d'heure pour un mois. Dans les variable VBA, l'heure suivante de 24/03/04 23:00 est bien 25/03/04 00:00,mais lors de l'écriture de cette date dans la feuille excel, j'obtient 24/03/04 00:00. Pourquoi ???
merci
-- semich
Salut,
Comme ceci, ça fonctionne :
Sub ListeDate()
Dim D As Double
D = DateSerial(2004, 6, 1)
While Month(D) = Mois
i = i + 1
Cells(i, 1) = D
D = D + 1 / 24
Wend
End Sub
La macro ne marche plus si on définit D comme une variable Date...
A+
--
Nicolas B.
Bonjour,
Dans VBA, je crée une boucle afin b'obtenir une liste de date et
d'heure pour un mois.
Dans les variable VBA, l'heure suivante de 24/03/04 23:00 est bien
25/03/04 00:00,mais lors de l'écriture de cette date dans la feuille
excel, j'obtient 24/03/04 00:00. Pourquoi ???
Comme ceci, ça fonctionne : Sub ListeDate() Dim D As Double D = DateSerial(2004, 6, 1) While Month(D) = Mois i = i + 1 Cells(i, 1) = D D = D + 1 / 24 Wend End Sub
La macro ne marche plus si on définit D comme une variable Date...
A+ -- Nicolas B.
Bonjour,
Dans VBA, je crée une boucle afin b'obtenir une liste de date et d'heure pour un mois. Dans les variable VBA, l'heure suivante de 24/03/04 23:00 est bien 25/03/04 00:00,mais lors de l'écriture de cette date dans la feuille excel, j'obtient 24/03/04 00:00. Pourquoi ???
merci
-- semich
AV
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ? ;-) AV
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ?
;-)
AV
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ? ;-) AV
Nicolas B.
Oups, petit problème de Copier-coller...
Comme ceci, c'est testé, ça marche... ;-)
Sub ListeDate() Dim D As Double D = DateSerial(2004, 6, 1) While Month(D) = 6 i = i + 1 Cells(i, 1) = D D = D + 1 / 24 Wend End Sub
Et puis on peut faire aussi comme ça (pour conserver D en Date) : Sub ListeDate() Dim D As Date D = DateSerial(2004, 6, 1) While Month(D) = 6 i = i + 1 Cells(i, 1) = CDec(D) D = D + 1 / 24 Wend End Sub
Par contre, je sais pas pourquoi ça ne marche pas sans le CDec...
A+ -- Nicolas B.
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ? ;-) AV
Oups, petit problème de Copier-coller...
Comme ceci, c'est testé, ça marche... ;-)
Sub ListeDate()
Dim D As Double
D = DateSerial(2004, 6, 1)
While Month(D) = 6
i = i + 1
Cells(i, 1) = D
D = D + 1 / 24
Wend
End Sub
Et puis on peut faire aussi comme ça (pour conserver D en Date) :
Sub ListeDate()
Dim D As Date
D = DateSerial(2004, 6, 1)
While Month(D) = 6
i = i + 1
Cells(i, 1) = CDec(D)
D = D + 1 / 24
Wend
End Sub
Par contre, je sais pas pourquoi ça ne marche pas sans le CDec...
A+
--
Nicolas B.
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ?
;-)
AV
Sub ListeDate() Dim D As Double D = DateSerial(2004, 6, 1) While Month(D) = 6 i = i + 1 Cells(i, 1) = D D = D + 1 / 24 Wend End Sub
Et puis on peut faire aussi comme ça (pour conserver D en Date) : Sub ListeDate() Dim D As Date D = DateSerial(2004, 6, 1) While Month(D) = 6 i = i + 1 Cells(i, 1) = CDec(D) D = D + 1 / 24 Wend End Sub
Par contre, je sais pas pourquoi ça ne marche pas sans le CDec...
A+ -- Nicolas B.
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ? ;-) AV
michdenis
Bonjour Nicolas,
Une date est habituellement une donnée de type "Long" et pour cause ... une date avec excel représente le nombre de jours entre 1 janvier 1900 et la date désirée ! Il est question ici de nombres entiers (jours) et comme une date donnée peut facilement dépasser (nombre de jours) facilement 32726 (Limite pour une variable de type Integer) .... on ne peut pas lui affecter un type Integer. Cependant, si dans le format d'une date, on doit tenir compte des Heures:Minutes:Secondes, soit la partie décimale d'un nombre (représentant une date), on doit en conséquence permettre à cette variable d'en tenir compte, et le type "Long" ou "Integer" ne sont plus appropriés parce qu'ils ne gèrent pas les nombres avec décimales. On doit alors opter pour une variable ayant un type as "Double" ....
Salutations!
"Nicolas B." a écrit dans le message de news: Oups, petit problème de Copier-coller...
Comme ceci, c'est testé, ça marche... ;-)
Sub ListeDate() Dim D As Double D = DateSerial(2004, 6, 1) While Month(D) = 6 i = i + 1 Cells(i, 1) = D D = D + 1 / 24 Wend End Sub
Et puis on peut faire aussi comme ça (pour conserver D en Date) : Sub ListeDate() Dim D As Date D = DateSerial(2004, 6, 1) While Month(D) = 6 i = i + 1 Cells(i, 1) = CDec(D) D = D + 1 / 24 Wend End Sub
Par contre, je sais pas pourquoi ça ne marche pas sans le CDec...
A+ -- Nicolas B.
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ? ;-) AV
Bonjour Nicolas,
Une date est habituellement une donnée de type "Long" et pour cause ... une date avec excel représente le nombre de
jours entre 1 janvier 1900 et la date désirée ! Il est question ici de nombres entiers (jours) et comme une date donnée
peut facilement dépasser (nombre de jours) facilement 32726 (Limite pour une variable de type Integer) .... on ne peut
pas lui affecter un type Integer. Cependant, si dans le format d'une date, on doit tenir compte des
Heures:Minutes:Secondes, soit la partie décimale d'un nombre (représentant une date), on doit en conséquence permettre à
cette variable d'en tenir compte, et le type "Long" ou "Integer" ne sont plus appropriés parce qu'ils ne gèrent pas les
nombres avec décimales. On doit alors opter pour une variable ayant un type as "Double" ....
Salutations!
"Nicolas B." <nicolas.bruot@adresse.bidon.com> a écrit dans le message de news:ub19tV2WEHA.3944@tk2msftngp13.phx.gbl...
Oups, petit problème de Copier-coller...
Comme ceci, c'est testé, ça marche... ;-)
Sub ListeDate()
Dim D As Double
D = DateSerial(2004, 6, 1)
While Month(D) = 6
i = i + 1
Cells(i, 1) = D
D = D + 1 / 24
Wend
End Sub
Et puis on peut faire aussi comme ça (pour conserver D en Date) :
Sub ListeDate()
Dim D As Date
D = DateSerial(2004, 6, 1)
While Month(D) = 6
i = i + 1
Cells(i, 1) = CDec(D)
D = D + 1 / 24
Wend
End Sub
Par contre, je sais pas pourquoi ça ne marche pas sans le CDec...
A+
--
Nicolas B.
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ?
;-)
AV
Une date est habituellement une donnée de type "Long" et pour cause ... une date avec excel représente le nombre de jours entre 1 janvier 1900 et la date désirée ! Il est question ici de nombres entiers (jours) et comme une date donnée peut facilement dépasser (nombre de jours) facilement 32726 (Limite pour une variable de type Integer) .... on ne peut pas lui affecter un type Integer. Cependant, si dans le format d'une date, on doit tenir compte des Heures:Minutes:Secondes, soit la partie décimale d'un nombre (représentant une date), on doit en conséquence permettre à cette variable d'en tenir compte, et le type "Long" ou "Integer" ne sont plus appropriés parce qu'ils ne gèrent pas les nombres avec décimales. On doit alors opter pour une variable ayant un type as "Double" ....
Salutations!
"Nicolas B." a écrit dans le message de news: Oups, petit problème de Copier-coller...
Comme ceci, c'est testé, ça marche... ;-)
Sub ListeDate() Dim D As Double D = DateSerial(2004, 6, 1) While Month(D) = 6 i = i + 1 Cells(i, 1) = D D = D + 1 / 24 Wend End Sub
Et puis on peut faire aussi comme ça (pour conserver D en Date) : Sub ListeDate() Dim D As Date D = DateSerial(2004, 6, 1) While Month(D) = 6 i = i + 1 Cells(i, 1) = CDec(D) D = D + 1 / 24 Wend End Sub
Par contre, je sais pas pourquoi ça ne marche pas sans le CDec...
A+ -- Nicolas B.
La macro ne marche plus si on définit D comme une variable Date...
Et si on ne définit pas "Mois", elle marche quand même ? ;-) AV