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 :

Affichage des heures supérieures à 24h


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Décembre 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Décembre 2016
    Messages : 62
    Par défaut Affichage des heures supérieures à 24h
    Bonjour,

    Je suppose que la question a déjà été posée mais je ne trouve pas.

    J'ai un tableau excel avec des heures par jour au format hh:mm:ss

    Avec VBA, je souhaite additionné toutes les heures du lundi au samedi et toutes les heures du dimanche

    J'arrive bien à le faire mais je n'arrive pas à convertir les heures en heures si elles dépassent 24h

    J'ai bien essayé de formater(FORMAT) mon résultat mais :
    - [hh]:nn ne me retourne pas d'heures mais que les minutes (" :45")
    - hh:nn me retourne des heures en dessous de 24h (01:45)
    - FORMAT, ça me retourne la date/heure si ça dépasse de 24h ("01.01.1900 01:45:00)

    Comment faire ?

    En vous remerciant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Sub calcul()
    Dim var_semaine As Date
    Dim var_dimanche As Date
    Dim cellule As Range
    For Each cellule In Range("A4:A29")
        If Weekday(cellule, 2) <> 7 Then
            If cellule <> "" Then
                var_semaine = var_semaine + Application.WorksheetFunction.VLookup(cellule, Range("A4:F29"), 6)
            End If
        Else
            If cellule <> "" Then
                var_dimanche = var_dimanche + Application.WorksheetFunction.VLookup(cellule, Range("A4:F29"), 6)
            End If
        End If
    Next cellule
    MsgBox Format(var_semaine, "[hh]:nn") & " - " & Format(var_dimanche, "[hh]:nn")
    End Sub

  2. #2
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 592
    Par défaut
    Bonjour,
    Il faut donner à la cellule le format [h]:mm:ss

  3. #3
    Membre confirmé
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Décembre 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Décembre 2016
    Messages : 62
    Par défaut
    Bonjour,

    J'essayais d'avoir le bon format en msgbox mais effectivement si j'envoie la valeur directement dans une cellule excel c'est tout bon.

    Merci pour vote aide

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    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 : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Curieusement la fonction Format de VBA ne reconnait pas les crochets dans le format d'heure
    Voici une astuce en utilisant en VBA la fonction Text d'excel

    Dans l'exemple la cellule M5 de la feuille active contient 36:00
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub t()
      Dim t As String
      t = Application.WorksheetFunction.Text(Range("M5").Value, "[h]:mm")
      MsgBox (t)
    End Sub
    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

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

Discussions similaires

  1. Affichage de durées supérieures à 24h
    Par Stach029 dans le forum BIRT
    Réponses: 8
    Dernier message: 13/01/2015, 12h33
  2. [planning] Problème d'affichage des heures visibles
    Par baris69330 dans le forum WebDev
    Réponses: 1
    Dernier message: 14/06/2011, 11h32
  3. format heure supérieure à 24h dans textbox
    Par titemireille dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/02/2008, 12h41
  4. Affichage des heures négatives
    Par benjaminalvarez dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/02/2008, 23h26
  5. [VBA-E] somme d'heures supérieures à 24h
    Par bandit boy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/05/2006, 16h02

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