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 :

addition heures au dela 24H [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut addition heures au dela 24H
    Bjr,
    Comment faire pour aller au dela de 24h ?
    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
    19
    20
    Sub BilanHE()
    Dim PlageNoms As Range
    Dim PlageHeures As Range
    Dim CelNom As Range
    Dim CelHeu As Range
    Dim total As Date
    total = 0
     Set PlageNoms = Range("B5:B" & Range("B65536").End(xlUp).Row)
        For Each CelNom In PlageNoms
         col = CelNom.Row
          Set PlageHeures = Range("B" & col & ":AK" & col)
            For Each CelHeu In PlageHeures
              If CelHeu.Interior.ColorIndex = 15 And CelHeu.Value <> "" Then
                total = total + CelHeu.Offset(0, -1).Value
              End If
            Next CelHeu
        Next CelNom
     
        Set PlageDonnees = Nothing
        Set CelDonnee = Nothing
    Cdt

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Je penses que tu as 3 choix possible,

    soit la valeur inscrite dans total, je suppose que tu l'as transfert dans une cellule et a ce moment dans le format de la cellule tu mets "[h]" ce qui t'afficheras le nombre d'heures cumulées et non pas 1j5h au lieu de 29h

    soit tu utilises format(total,....) regarde dans l'aide je pense (mais ne suis pas sur) que tu as possibilité de le faire avec.

    soit au lieu de déclarer total As Date tu le déclares As Integer,

    pour ma part je pense que la dernière option et la meilleur, a savoir que si tes cellules "CelHeu.Offset(0, -1).Value" ont un format particulier, il te faudra utiliser "CelHeu.Offset(0, -1).Value2" dans ce cas me semble t-il.

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bsr,

    J'ai essayé il me donne des entiers.1,2,3.... Je pense que c'est le nombre de fois 24h ?
    Cdt

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Re
    Que contiennent exactement les cellules que tu cherches a additionner?
    Je serais curieux de voir ton tableau mais avec juste une fonction perso qui te retourne la couleur de la cellule il est surement possible de faire ca via des formules
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Des heures sous la forme 15:20:00 (hh mn ss) J'essaie de faire l'addition mais dès que c'=est au dela de 24h il me donne un format de date.Je veux additionner par exemple la cellule A1 qui contient 12:00:00 et la cellule A3 qui contient 13:00:00 Les formats de ces cellules sont "Heures 37:30:00"

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Re
    Alors modifie juste ton format de cellule comme suit
    "Heures "[h]:mm:ss
    ca devrait le faire je pense
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  7. #7
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Non le format [h]:mm:ss est le même que 37:30:00.
    Je le fais par code parcequ'avec une formule il me faudrait trop de si imbriqués.Je n'ajoute que si la cellule qui suit la cellule considérée n'est pas à zero et cela sur 12 mois.(Fichier joint)
    Fichiers attachés Fichiers attachés

  8. #8
    Membre éprouvé Avatar de Brunodm13
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 129
    Par défaut
    Bonsoir

    Si tu convertis tes valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If CelHeu.Interior.ColorIndex = 15 And CelHeu.Value <> "" Then
                total = total + CDec(CelHeu.Offset(0, -1).Value)
    Lorsque tu renvoies ta valeur 'total' dans une cellule il te reste juste à lui appliquer le format personnalisé [hh]:mm:ss

    Bizarrement, la fonction ci-dessous ne fonctionne pas, du moins sur ma version [XL2000]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(valeur, "[hh]:mm:ss")

    Par contre le code ci-dessous lui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").NumberFormat = "[hh]:mm:ss"
    Cordialement

    Bruno

  9. #9
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bjr,

    Le prob c'est pas le format cellule c'est de faire mes additions en temps réel et de les copier à la fin.Même avec Cdec tout va bien tant que l'on ne dépasse pas 24h.Ensuite la valeur devient une date suivie d'une heure.
    Cdt

  10. #10
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    juste une formule au passage (mais qui ne supporte pas les Ok dans le tableau par contre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME((MOD(COLONNE(B4:P4)+1;3)=0)*(C4:Q4<>"")*B4:P4)
    Elle doit etre saisi puis validé en appuyant sur Ctrl+shift+enter, c'est une formule matricielle.

    Pour ton code
    1er question qu'est ce qui le declenche?
    2eme question ou va la valeur retourné et comment est elle transmise?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #11
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    ok je vais essayer la formule.
    Mon code sera une macro a lancer aà l'ouverture du fichier.Si j'arrive à additionner par ligne je ferai une colonne finale avec un total ligne et dans ma seconde boucle j'écrirai le resultat par ligne.
    Cdt

  12. #12
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Pour éviter la ref circulaire il faut laisser une colonne vide.
    Je regarde le code

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  13. #13
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    J'ai adapté mais mal probablement.Fichier joint en entier.
    Fichiers attachés Fichiers attachés

  14. #14
    Membre éprouvé Avatar de Brunodm13
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 129
    Par défaut
    Re,

    à partir de ton fichier j'ai fait une petite macro qui additionne les heures et renvoie la somme dans une cellule.
    Jettes-y un oeil.

    Bruno
    Fichiers attachés Fichiers attachés

  15. #15
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bruno
    Ta macro est bien mais je dois le faire ligne par ligne avec des conditions.Je n'additionne que si la cellule qui suit contient une date ou ok.
    Cdt

  16. #16
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Re
    Ton adaptation est bonne, meme mieux puisque tu as arrêter la plage une cellule avant ce qui correspond bien a ton besoin et evite d'avoir a sauter une ligne.
    La seule chose que tu as mal faite, c'est de valider via ctrl+shift+enter.

    Tu cliques sur la cellule ou il y a la formule, tu clique dans la barre de formule (les cellule et plage se colore dans la formule) puis au lieu de faire simplement entrée pour passer a la cellule suivante tu fait Ctrl+Shift+Enter

    voila ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  17. #17
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Désolé je dois vous quitter pour ce soir je reprendrai demain.
    Merci en attendant à tous les deux.
    CDt

  18. #18
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Re
    Voila une modif pour la formule, elle fonctionne maintenant aussi avec des cellule contenant du texte (Ok), désolé je début avec les formules matricielles :p, mais c super puissant je suis bleuffé
    a++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  19. #19
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bjr,
    Je n'ai pas eu la modif pour ok.Oubli de la pièce jointe?
    Cdt

  20. #20
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    L'heure, c'est l'heure et s'exprime en heure, minute et seconde. l'heure se remet à zéro à minuit.
    La durée s'exprime également en heures, minutes et secondes, mais n'est pas l'heure. Contrairement à l'heure, elle ne se remet jamais à zéro et ne peut qu'augmenter.

    Cà, c'est pour le langage naturel.

    Et EXCEL? ===>> Il sait lui également gérer cette distinction.

    Une discussion à lire jusqu'au bout :
    http://www.developpez.net/forums/d27...uree-timespan/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2010] Convertir heures au dela de 24h en centiemes
    Par lumpys dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/01/2014, 17h02
  2. [AC-2000] Addition heures sup. à 24h
    Par luzts dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/09/2013, 07h28
  3. [WD10] Champs saisie type heure : comment dépasser 24h ?
    Par lepirate dans le forum WinDev
    Réponses: 7
    Dernier message: 15/02/2011, 13h51
  4. VBA Excell -> Addition heures
    Par cnguyen dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/08/2007, 13h18
  5. heure en format 24h
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 02/10/2006, 12h46

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