IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Durée entre deux temps timevalue [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par défaut Durée entre deux temps timevalue
    Bonjour,

    Je poursuis ma réflexion sur timevalue initiée lors d'un précédent post.

    Initialement, je récupère deux temps au format texte type 12h00.
    Je les convertis en donnée temps : 12:00:00
    Et je lui donne une correspondance avec le type Date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    dim h_ini as date
    dim h_fin as date
    dim res as single
     
    h_ini=timevalue("08:00:00")
    h_fin=timevalue ("12:00:00")
     
    Debug.print h_ini          <-------- retourne 08:00:00
    Debug.print h_fin          <-------- retourne 12:00:00
     
    'Calcul de la différence
    res=h_fin-h_ini             <-------- retourne 0.16666
    Mon objectif principal est de récupérer la réponse 04:00 pour 12:00-08:00

    Mais j'ai l'impression de ne pas bien saisir la fonction timevalue. Certes elle me retourne un nombre décimale mais pourquoi une si petite valeur ?

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 565
    Par défaut
    Bonjour

    1 heure est 1/24ème de jour (unité de temps dans Excel) donc 0,0416666666666667. C'est le format qui fait le reste.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    et avec il ne te l'affichera pas au format date mais en décimal, ce que tu lis.
    eric

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim DEB As Date
    Dim FIN As Date
    DEB = CDate("08:00:10")
    FIN = CDate("12:05:01")
    MsgBox Format(FIN - DEB, "hh:mm:ss")
    et pour s'amuser un peu dans ce genre de foulée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim DEB As Date
    Dim FIN As Date
    DEB = CDate("01/01/2001 08:00:10")
    FIN = CDate("04/01/2001 09:15:12")
    MsgBox Format(FIN - DEB + 1, "d \jour(\s) hh \heure(\s) mm \mi\nute(\s) ss\se\co\n\de(\s)")
    EDIT : les plus futés sauront pourquoi j'ai "échappé" le "c"

  5. #5
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par défaut
    Bonjour,

    Respect...

    Merci

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par unparia Voir le message
    EDIT : les plus futés sauront pourquoi j'ai "échappé" le "c"

    Sans être forcément futé, mais un brin curieux

    Affichage de la date sous la forme ddddd et de l'heure sous la forme ttttt, dans cet ordre. Affichage des informations relatives à la date seulement si le numéro de série de date ne comporte aucune partie décimale ; affichage des informations relatives à l'heure seulement en l'absence de partie entière.

    http://jpcheck.developpez.com/tutori...rmat-dans-vba/
    section [II-b-iii. Formats de date/heure définis par l'utilisateur]

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour joe.levrai
    pas beaucoup de différences entre ce que l'on lit dans le lien que tu montres et ... celui de msdn --->>
    Mais ni l'un ni l'autre ne parlent de la nécessité de l'échappement du "c" dans certains cas
    Une piste (mais ce devrait faire l'objet d'une discussion à part entière) : ce "c" peut astucieusement être utilisé par rapport à l'année 1900, à condition de s'en tenir à des durées temporelles (seules uniotés valors valables : jours, heures, minutes et secondes, les mois et années étant à exclure puisqu'étant calendaires et non temporelles) et non calendaires.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 26/12/2013, 15h52
  2. duree entre deux messages successif
    Par yosraisi dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/04/2008, 11h46
  3. Réponses: 10
    Dernier message: 14/12/2007, 14h13
  4. Durée entre deux points
    Par rzayani dans le forum C++
    Réponses: 4
    Dernier message: 05/07/2007, 11h08
  5. [Requete] Calcul Somme entre deux temps pour chaque jour
    Par nico33307 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/03/2006, 00h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo