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 :

Macro et jours/heures ouvrées


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut PITIER !! Macro et jours/heures ouvrées
    Bonjour,

    J'ai reçu de l'aide ici même sur ce forum pour une macro VBA.
    J'aurais encore besoin d'aide pour la modifier.

    J'aimerais que cette macro puisse gérer les heures et jours ouvrés
    (sans faire attention aux jours fériés, sauf si c'est possible)

    Et qu'au lieu de se lancer à chaque clique sur la feuille, qu'elle se lance toute les 10 min par exemple.

    La macro est dans le fichier.

    Merci pour votre aide (Aixel) !!

    Suzanne
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Points : 68
    Points
    68
    Par défaut
    bonjour

    Je veux bien essayer de t'aider mais là je m'y perd un peu

    Est ce que tu peux m'expliquer en deux mots ce que ton code est sensé calculer stp

    aussi en quoi doit il prendre en compte les jours et heures ouvrées?

    enfin dans ton code il ya un truc que je ne comprend pas dans la façon de calculer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    If Dt <= 0 And Dt <> "" Then
        Nh = Dt - Fix(Dt)
        Cells(c, 5) = Format(Dt - Nh ' ça en fait c'est équivalent à Fix(Dt) _
    , "00") & " d " & Format(Dt - Fix(Dt)' et ça c'est Nh _
    , "hh:mm:ss")
        Else
        Cells(c, 5) = Dt
        End If

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Re : Macro et jours/heures ouvrées
    Franchement je ne saurais pas te répondre mais je vais essayer de remettre une explication ce soir ou demain :-)

  4. #4
    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
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Petite expérience, juste en passant :

    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
    Private Sub Command1_Click()
      dt = -7.22222
      If dt <= 0 And dt <> "" Then
        nh = dt - Fix(dt)
        MsgBox " Format(dt - nh, ""00"") & ""  d "" & Format(dt - Fix(dt), ""hh:mm:ss"") retourne " & vbCrLf & _
        Format(dt - nh, "00") & " d " & Format(dt - Fix(dt), "hh:mm:ss") & vbCrLf & vbCrLf & _
        "c'est à dire la même chose que retournerait tout simplement et d'emblée " & vbCrLf & vbCrLf & _
        "Format(Fix(dt), ""00"") & "" d "" & Format(dt - Fix(dt), ""hh:mm:ss""), qui retourne " & vbCrLf & _
        Format(Fix(dt), "00") & " d " & Format(dt - Fix(dt), "hh:mm:ss") & vbCrLf & vbCrLf & _
        "alors à quoi diable a servi tout ce mic mac avec un tremplin nh, etc ... ?"
     
        toto = Format(dt - nh, "00") & " d " & Format(dt - Fix(dt), "hh:mm:ss")
        Else
          toto = dt
      End If
    End Sub
    sans compter que je ne comprends pas l'idée de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If dt <= 0 And dt <> "" Then
    si dt est un string, pour le comparer à 0, il faut le convertir d'abord en numérique intelligible
    si dt est déjà un numérique, il ne saurait être comparé à la chaîne "" ....

    Au hasard : dt n'a pas été déclarée ... et l'option explicit n'a pas été utilisée...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour !!

    Toutes mes excuses pour le temps de réponse.
    Saloperie de fournisseur d'accès ...

    Alors voila les explications :

    Il y a une serie de status qui se suivent :

    Consilidated -> Realized -> Debriefed -> Closed
    Il y a un maximum de 24 heures autorisé pour passer d'un status a un autre.
    (En jours ouvrés et heures ouvrées)

    Si le status est "Consolidated"
    alors il faut faire le calcule :
    DATE_END_NOD - (en éliminant les we dans le cacul)

    Si le status est "debriefed"
    alors il faut faire le cacule :
    DATE_DEBRIEFED - (en éliminant les we dans le cacul)

    Si le status est realized :
    alors il faut faire le calcule :
    'DATE_DEBRIEFED - (en éliminant les we dans le cacul)

    pour toutes autres satus ne rien faire.


    Si le temps restant est supérieure ou égale 16h - Couleur verte
    Si le temps restant est compris entre 16h et 4h (non inlcus) - Couleur Orange
    Si le temps restant est compris entre 4h, et ou si on a dépassé les 24h - Couleur Rouge

    Et je voudrais que ça se classe automatiquement, les lignes en rouges (temps dépassés) en haut.

    je ne sais pas si c'est trés clair

    Enfin je vais me faire allumer demain si j'ai pas un truc qui tourne a peu prés ...

    C'est au choix soit en Macro VBA, en améliorant le code fourni soit en code excel.
    Avec le VBA je pense que ce qui est bien c'est de pouvoir mettre un timer.


    Au passage je suis complement nulle.
    Si une personne veut bien m'aider aussi via MSN, je suis partante, evidement le resultat sera mis dans le forum, pour aider d'autre personnes.

    Suzanne.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/11/2009, 09h26
  2. Conversion minutes vers Jour:Heure:minute
    Par jaq dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/09/2009, 17h01
  3. [BO 6.51] durée en jour ouvré et heure "ouvrée"
    Par aurelie83 dans le forum Deski
    Réponses: 1
    Dernier message: 12/02/2008, 18h20
  4. [Transact SQL] concaténer jour+heure
    Par tiboleo dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 02/12/2004, 13h12
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15

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