[Somme de date][VBA]

Fermé
Utilisateur anonyme - 13 juil. 2005 à 14:24
 Utilisateur anonyme - 13 juil. 2005 à 14:56
Bonjour,

Voilà mon problème : je récupère différents temps à l'aide de la fonction "Maintenant()" sous la forme jj/mm/aa hh:mm:ss.

Ensuite, je filtre pour ne récupérer que la durée, soit hh:mm:ss.
Et je voudrais faire la somme des temps. Par exemple, je récupère
00:09:56 et 00:24:42.

Normalement, cela devrait donne 00:34:38, hors quand je fais la somme dans la requête, cela donne 0.024!

A quoi cela correspond-il et comment puis-je faire pour obtenir le format hh:mm::ss?
Merci

3 réponses

blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 3 287
13 juil. 2005 à 14:47
Salut,

la somme est donnée en multiple de 24h, soit 0,024 jour.

Va dans excel, tape : 0,024 et change le format en hh:mm:ss... tu as l'explication !

Il faut donc que tu utilises 'format' dans ta requête :
SELECT Format(TABTEST.[champ deux],"hh:mm:ss") AS Expr1
FROM TABTEST;
par exemple...

Mais fais attention aux arrondis, car 0,024 donne 00:34:34 et non 00:34:38...
0
DaNot Messages postés 221 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 4 novembre 2005 163
13 juil. 2005 à 14:49
Salut,

Il faut sommer les heures avec les heures, les minutes avec les minutes et les secondes avec les secondes. Ensuite, il suffit de reformer le résultat en une variable de type Heure. Pour cela, il faut utiliser la fonction TimeSerial.

Petit Exemple :
Dim lHeure1 As Date
Dim lHeure2 As Date
Dim lsomme As Date
    
lSomme = TimeSerial(Hour(lHeure2) + Hour(lHeure1), Minute(lHeure2) + Minute(lHeure1), Second(lHeure2) + Second(lHeure1))

0
Utilisateur anonyme
13 juil. 2005 à 14:56
OK
Merci à vous deux et bon week-end
0