[Somme de date][VBA] [Fermé]

Signaler
-
 Utilisateur anonyme -
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

4 réponses

Messages postés
23911
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 mars 2019
2692
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...
Messages postés
221
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
4 novembre 2005
159
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))


OK
Merci à vous deux et bon week-end