[Somme de date][VBA]

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

3 réponses

  1. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  2. DaNot Messages postés 221 Statut Membre 163
     
    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
  3. Utilisateur anonyme
     
    OK
    Merci à vous deux et bon week-end
    0