OVH Cloud OVH Cloud

VBA Date et heure entière dans une cellule

4 réponses
Avatar
Domi
Bonsoir à tous,
Je suis confronté au pb suivant.
Je voudrais insérer dans un ensemble de cellules la date et l'heure mais
l'heure entière sans les minutes ni les secondes

Pour le moment j'utilise ce code qui insère date et heure (Now) dans un
certain nombre de cellules sélectionnées aléatoirement :
For Each c In Ref
If IsEmpty(c) Then c = Now ' avant je mettais Date
Next c

Mais cette solution me pose des problèmes car il faut absolument que j'ai
la même valeur (à cause de l'application de filtres par la suite...) dans
toutes les cellule qui auront été remplies pendant le déroulement de cette
macro. Hors avec ma version actuelle, j'ai souvent des valeurs différentes
de 0 à 2 secondes selon la durée d'exécution de la macro...
J'ai pensé qu'en ne saisissant que l'heure cela pourrait remédier à mon pb
mais je ne sais si c'est faisable...(un arrondi à l'heure inf ou sup par
exemple...)
A moins que que quelqu'un n'ait une autre solution... Le but final c'est
d'avoir la même valeur dans chaque cellule. La date n'est pas suffisante car
la macro peut être exécutée plusieurs fois au cours d'une même journée mais
pas 2 fois dans la même heure....
Toute suggestion sera la bienvenue.
Merci
Domi

4 réponses

Avatar
Clément Marcotte
Bonjour,

Avec la fonction time() tu obtiens l'heure-système.
Au cas où il y aurait une modification de l'heure durant l'exécution
de la macro, tu peux récupérer l'heure dans une variable au début de
la macro et l'insérer dans les cellules à partir de la valeur de la
variable.

Tu peux essayer quelque chose comme cela:

Sub quelleheure()
Dim lheure As Date, ladate As Date
Dim lavaleurfinale As Date, carre
Dim laplage As Range
lheure = Time
ladate = Date
lavaleurfinale = ladate & " " & lheure
For Each carre In Range("a1:a10")
carre.Value = lavaleurfinale
Next
End Sub



"Domi" a écrit dans le message de
news:
Bonsoir à tous,
Je suis confronté au pb suivant.
Je voudrais insérer dans un ensemble de cellules la date et l'heure
mais

l'heure entière sans les minutes ni les secondes

Pour le moment j'utilise ce code qui insère date et heure (Now) dans
un

certain nombre de cellules sélectionnées aléatoirement :
For Each c In Ref
If IsEmpty(c) Then c = Now ' avant je mettais Date
Next c

Mais cette solution me pose des problèmes car il faut absolument
que j'ai

la même valeur (à cause de l'application de filtres par la suite...)
dans

toutes les cellule qui auront été remplies pendant le déroulement de
cette

macro. Hors avec ma version actuelle, j'ai souvent des valeurs
différentes

de 0 à 2 secondes selon la durée d'exécution de la macro...
J'ai pensé qu'en ne saisissant que l'heure cela pourrait remédier à
mon pb

mais je ne sais si c'est faisable...(un arrondi à l'heure inf ou sup
par

exemple...)
A moins que que quelqu'un n'ait une autre solution... Le but final
c'est

d'avoir la même valeur dans chaque cellule. La date n'est pas
suffisante car

la macro peut être exécutée plusieurs fois au cours d'une même
journée mais

pas 2 fois dans la même heure....
Toute suggestion sera la bienvenue.
Merci
Domi




Avatar
Domi
Bien sûr ! la solution est là
Je vais adapter cela
Merci beaucoup pour ce coup de main ;o)
Domi

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Avec la fonction time() tu obtiens l'heure-système.
Au cas où il y aurait une modification de l'heure durant l'exécution
de la macro, tu peux récupérer l'heure dans une variable au début de
la macro et l'insérer dans les cellules à partir de la valeur de la
variable.

Tu peux essayer quelque chose comme cela:

Sub quelleheure()
Dim lheure As Date, ladate As Date
Dim lavaleurfinale As Date, carre
Dim laplage As Range
lheure = Time
ladate = Date
lavaleurfinale = ladate & " " & lheure
For Each carre In Range("a1:a10")
carre.Value = lavaleurfinale
Next
End Sub



"Domi" a écrit dans le message de
news:
Bonsoir à tous,
Je suis confronté au pb suivant.
Je voudrais insérer dans un ensemble de cellules la date et l'heure
mais

l'heure entière sans les minutes ni les secondes

Pour le moment j'utilise ce code qui insère date et heure (Now) dans
un

certain nombre de cellules sélectionnées aléatoirement :
For Each c In Ref
If IsEmpty(c) Then c = Now ' avant je mettais Date
Next c

Mais cette solution me pose des problèmes car il faut absolument
que j'ai

la même valeur (à cause de l'application de filtres par la suite...)
dans

toutes les cellule qui auront été remplies pendant le déroulement de
cette

macro. Hors avec ma version actuelle, j'ai souvent des valeurs
différentes

de 0 à 2 secondes selon la durée d'exécution de la macro...
J'ai pensé qu'en ne saisissant que l'heure cela pourrait remédier à
mon pb

mais je ne sais si c'est faisable...(un arrondi à l'heure inf ou sup
par

exemple...)
A moins que que quelqu'un n'ait une autre solution... Le but final
c'est

d'avoir la même valeur dans chaque cellule. La date n'est pas
suffisante car

la macro peut être exécutée plusieurs fois au cours d'une même
journée mais

pas 2 fois dans la même heure....
Toute suggestion sera la bienvenue.
Merci
Domi







Avatar
GD
Bonsour ®
en fait quelque chose comme ça :
Sub ajout_dateheur()
datheur = Date + (Hour(Now) / 24)
'------------datheur sera le meme pour toute la boucle
For Each c In [REF].Cells
If IsEmpty(c) Then c.Value = datheur ' avant je mettais Date
Next
End Sub

@+


dans news:,
Clément Marcotte typed:
Bonjour,

Avec la fonction time() tu obtiens l'heure-système.
Au cas où il y aurait une modification de l'heure durant l'exécution
de la macro, tu peux récupérer l'heure dans une variable au début de
la macro et l'insérer dans les cellules à partir de la valeur de la
variable.

Tu peux essayer quelque chose comme cela:

Sub quelleheure()
Dim lheure As Date, ladate As Date
Dim lavaleurfinale As Date, carre
Dim laplage As Range
lheure = Time
ladate = Date
lavaleurfinale = ladate & " " & lheure
For Each carre In Range("a1:a10")
carre.Value = lavaleurfinale
Next
End Sub



"Domi" a écrit dans le message de
news:
Bonsoir à tous,
Je suis confronté au pb suivant.
Je voudrais insérer dans un ensemble de cellules la date et l'heure
mais l'heure entière sans les minutes ni les secondes

Pour le moment j'utilise ce code qui insère date et heure (Now) dans
un certain nombre de cellules sélectionnées aléatoirement :
For Each c In Ref
If IsEmpty(c) Then c = Now ' avant je mettais Date
Next c

Mais cette solution me pose des problèmes car il faut absolument
que j'ai la même valeur (à cause de l'application de filtres par la
suite...) dans toutes les cellule qui auront été remplies pendant le
déroulement de cette macro. Hors avec ma version actuelle, j'ai
souvent des valeurs différentes de 0 à 2 secondes selon la durée
d'exécution de la macro...
J'ai pensé qu'en ne saisissant que l'heure cela pourrait remédier à
mon pb mais je ne sais si c'est faisable...(un arrondi à l'heure inf
ou sup par exemple...)
A moins que que quelqu'un n'ait une autre solution... Le but final
c'est d'avoir la même valeur dans chaque cellule. La date n'est pas
suffisante car la macro peut être exécutée plusieurs fois au cours
d'une même journée mais pas 2 fois dans la même heure....
Toute suggestion sera la bienvenue.
Merci
Domi




Avatar
Domi
Merci ;o)
Domi

"GD" a écrit dans le message de
news:
Bonsour ®
en fait quelque chose comme ça :
Sub ajout_dateheur()
datheur = Date + (Hour(Now) / 24)
'------------datheur sera le meme pour toute la boucle
For Each c In [REF].Cells
If IsEmpty(c) Then c.Value = datheur ' avant je mettais Date
Next
End Sub

@+


dans news:,
Clément Marcotte typed:
Bonjour,

Avec la fonction time() tu obtiens l'heure-système.
Au cas où il y aurait une modification de l'heure durant l'exécution
de la macro, tu peux récupérer l'heure dans une variable au début de
la macro et l'insérer dans les cellules à partir de la valeur de la
variable.

Tu peux essayer quelque chose comme cela:

Sub quelleheure()
Dim lheure As Date, ladate As Date
Dim lavaleurfinale As Date, carre
Dim laplage As Range
lheure = Time
ladate = Date
lavaleurfinale = ladate & " " & lheure
For Each carre In Range("a1:a10")
carre.Value = lavaleurfinale
Next
End Sub



"Domi" a écrit dans le message de
news:
Bonsoir à tous,
Je suis confronté au pb suivant.
Je voudrais insérer dans un ensemble de cellules la date et l'heure
mais l'heure entière sans les minutes ni les secondes

Pour le moment j'utilise ce code qui insère date et heure (Now) dans
un certain nombre de cellules sélectionnées aléatoirement :
For Each c In Ref
If IsEmpty(c) Then c = Now ' avant je mettais Date
Next c

Mais cette solution me pose des problèmes car il faut absolument
que j'ai la même valeur (à cause de l'application de filtres par la
suite...) dans toutes les cellule qui auront été remplies pendant le
déroulement de cette macro. Hors avec ma version actuelle, j'ai
souvent des valeurs différentes de 0 à 2 secondes selon la durée
d'exécution de la macro...
J'ai pensé qu'en ne saisissant que l'heure cela pourrait remédier à
mon pb mais je ne sais si c'est faisable...(un arrondi à l'heure inf
ou sup par exemple...)
A moins que que quelqu'un n'ait une autre solution... Le but final
c'est d'avoir la même valeur dans chaque cellule. La date n'est pas
suffisante car la macro peut être exécutée plusieurs fois au cours
d'une même journée mais pas 2 fois dans la même heure....
Toute suggestion sera la bienvenue.
Merci
Domi