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 :

Calcul du temps entre deux heures


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'étude
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Je rencontre un problème pour le calcul de temps entre deux heures.

    Je m'explique :

    Je possède dans une colonne une heure de départ et dans une autre colonne une heure d'arrivée. Malheureusement mes heures ne sont pas on bon format.
    Par exemple pour 4h du matin j'ai 400, pour 15h j'ai 1500, pour 20h30 j'ai 2030, pour 1h du matin j'ai 2500....

    J'aimerai faire une fonction qui permet de calculer le temps en minute entre l'heure de départ et l'heure d'arrivée. Par exemple entre 400 et 500, la fonction me retourne 60 minutes.

    Si vous avez une piste...

    Merci de votre aide.

    J'ai oublié de préciser, l'heure minimum est 4h du matin et maximum 4h du matin du jour suivant.

    Ma plage horaire va donc de 400 à 2799.

  2. #2
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut
    Bonjour,

    et pourquoi ne pas changer le format des cellules de facon a ce que les heures et minutes apparaissent. Après le calcul se fait tout seul par une formule

    Ou peut être faut il absolument que ce soit dans votre format spécial?
    Merci de cliquer sur pour chaque message vous ayant aidé
    puis sur pour clore cette discussion …

    C'est en récoltant les cailloux qu'on te jette que tu construiras ta future estrade...

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 200
    Points : 14 346
    Points
    14 346
    Par défaut
    Bonjour,

    Adapte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim Deb As Range, Fin As Range
        Set Deb = [A1]
        Set Fin = [B1]
        [C1] = (Fin - Deb) / 2400
        [C1].NumberFormat = "hh:mm"
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  4. #4
    Membre du Club
    Homme Profil pro
    Chargé d'étude
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Points : 49
    Points
    49
    Par défaut
    Je ne peux pas changer les formats, il faut que je les garde tel quel.

    Merci pour ce code j'ai adapté j'ai bien un résultat en retour mais il n'est pas bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
        Dim Deb As Range, Fin As Range
        Set Deb = Range("A1")
        Set Fin = Range("B1")
        Range("C1") = (Fin - Deb) / 2400
        Range("C1").NumberFormat = "hh:mm"
    End Sub
    Par exemple si j'ai 550 et 610 il me renvoi 36 minutes or j'en ai 20.

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 729
    Points : 28 555
    Points
    28 555
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Par exemple si j'ai 550 et 610 il me renvoi 36 minutes or j'en ai 20.
    Désolé mais pour moi le calcul proposé par Daniel est correct.
    Tu dis que 100 = 1 heure donc 50 est égal à 30 minutes et 10 qui est 10 fois moins que 100 est égal à 6 minutes soit 10 fois moins que 60 minutes
    Donc 6h06 - 5h30 est égal à 36 minutes
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre du Club
    Homme Profil pro
    Chargé d'étude
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Non par exemple 5h30 = 530 et 550 = 5h50, c'est pour sa entre 550 et 610 j'ai 20 minutes et non 36 minutes. En sachant que je n'aurai jamais de plage d'horaire finissant par 60, 70,80 ou 90...
    Une fois arrivée à 459, la minute suivante est 500.

    Désolé pour le manque de compréhension.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 200
    Points : 14 346
    Points
    14 346
    Par défaut
    Et 2799, c'est quoi ? (cf. ton premier message).
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  8. #8
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Par exemple pour 4h du matin j'ai 400, pour 15h j'ai 1500, pour 20h30 j'ai 2030, pour 1h du matin j'ai 2500....
    Comment peux tu avoir 400 pour 4h du matin et 2500 pour 1h du matin alors que logiquement tu devrais avoir 100, non ?

    Hervé.

  9. #9
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 200
    Points : 14 346
    Points
    14 346
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim Deb As Range, Fin As Range
        Set Deb = [A1]
        Set Fin = [B1]
        [C1] = TimeSerial(Int([B1] / 100), [B1] Mod 100, 0) - TimeSerial(Int([A1] / 100), [A1] Mod 100, 0)
        [C1].NumberFormat = "hh:mm"
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  10. #10
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    En A1 l'heure de début, en A2 l'heure de fin et la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =ABS((A1-A2)/100)*1/24
    et la cellule au format heure.

    Hervé.

  11. #11
    Membre du Club
    Homme Profil pro
    Chargé d'étude
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Daniel.C Voir le message
    Et 2799, c'est quoi ? (cf. ton premier message).

    Je me suis mal exprimé toutes mes excuses, j'aurai du écrire 2759.

    Comment peux tu avoir 400 pour 4h du matin et 2500 pour 1h du matin alors que logiquement tu devrais avoir 100, non ?

    Hervé.
    La journée va de 4h du matin à 4h du matin du jour suivant, on commence à 400 jusque 2759 qui correspond à 3h59. Puis on recommence une nouvelle journée.

    Merci Daniel C ton code marche parfaitement et merci aux autres personnes d'avoir pris le temps pour mon problème.
    Bonne journée.

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

Discussions similaires

  1. calculer la différence entre deux heures
    Par jenniferIUP dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 13/07/2012, 15h55
  2. Réponses: 3
    Dernier message: 09/09/2010, 18h47
  3. caculer le temps entre deux heures différentes
    Par andregoub dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 30/05/2007, 15h03
  4. calcul l'ecart entre deux heures
    Par magictom42 dans le forum Access
    Réponses: 2
    Dernier message: 06/12/2006, 14h40
  5. Requête pour calculer le temps entre deux dates
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 14h50

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