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 des délais en heures ouvrées


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de Données
    Inscrit en
    Janvier 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de Données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 79
    Points : 20
    Points
    20
    Par défaut Calcul des délais en heures ouvrées
    Bonjour,

    j'ai un tableau avec 2 colonnes :
    Colonne A : Date et heure de début.
    exemple : 04/02/2017 07:15

    Colonne B : Date et heure de fin
    exemple : 06/02/2017 07:15

    Je souhaiterai avec dans la colonne C le nombre d'heures "ouvrées" entre la fin (colonne B) et le début (colonne A)
    sachant que les heures ouvrées sont du lundi au samedi de 7h à 19h.

    dans l'exemple, la colonne C donne donc 12:00
    de 04/02/2017 07:15 à 04/02/2017 19:00 = 11:45
    de 06/02/2017 07:00 à 06/02/2017 07:15 = 00:15

    je pensais partir sur un truc du genre :

    Si début et fin ont le même jour
    alors C = B-A
    Sinon "calcul du nombre de jours ouvrés (en enlevant le dimanche si il y en a un donc) entre jour de B et jour de A"
    je multiplie ce nombre de jours par 12h
    j'ajoute au résultat obtenu : (date début 19:00 - date et heure début) + (date et heure de fin - date de fin 07:00)

    c'est faisable comme ça ? Il y a beaucoup plus simple ?

    Je veux bien un peu d'aide.

    et si c'est faisable avec juste une formulaire plutôt que du VBA, c'est encore plus simple je pense.

    Merci d'avance.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Administrateur de Données
    Inscrit en
    Janvier 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de Données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 79
    Points : 20
    Points
    20
    Par défaut
    j'ai fait un truc.

    Colonne A : Date Début
    Colonne B : heure début
    Colonne C : Date Fin
    Colonne D : Heure Fin
    Colonne E : Délai

    j'ai également un onglet Param avec des infos auxquelles j'ai donné des nom
    debut = 07:00
    fin = 19:00

    et une liste de jours fériés que j'ai appelé Fériés

    détail de Délai pour la ligne 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(OU(A2="";C2="");"";SI(NB.JOURS.OUVRES(A2;C2;Fériés)=0;D2-B2;SI(NB.JOURS.OUVRES(A2;C2;Fériés)=1;(fin-B2)+(D2-debut);SI(NB.JOURS.OUVRES(A2;C2;Fériés)>2;(((NB.JOURS.OUVRES(A2;C2;Fériés)-2)*(fin-debut)))+(fin-B2)+(D2-debut);(fin-B2)+(D2-debut)))))
    le fichier Excel : Calcul_Délai_Heures_Ouvrées.xls

    Cela vous semble correct ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de Données
    Inscrit en
    Janvier 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de Données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 79
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    je ré-ouvre ce sujet car j'ai eu une nouvelle demande :

    Ouverture du lundi au samedi mais les horaires du lundi au vendredi sont différentes du samedi.

    Horaires d’ouverture du samedi : 8H30 à 15H30
    Horaires d’ouverture en semaine (lundi au vendredi) : 6H30 à 19H30

    On me demande de calculer cela :

    - Tant que pas terminé (date et heure de fin vide) : Temps restant pour traiter le dossier sachant que le délai de traitement demandé est de 48h ouvrés max = nombre d'heure entre l'heure actuelle et la fin de traitement "estimée" (date et heure de début + 48h ouvrées)
    - Une fois terminé (date et heure de fin renseigné) : Délais de traitement = Nombres d'heures ouvrées entre l'ouverture et la fermeture du dossier.


    Quend les horaires sont identiques pour semaine et samedi, ce que j'ai fait fonctionne bien, mais la, je ne sais pas trop comment m'en sortir.

    Est ce qu'il faut que je calcule en 2 temps ? d'abord le nombre d'heures ouvrées en semaine puis le nombre d'heures ouvrées de samedi ? et d'additionner le tout ?

    Je veux bien un peu d'aide si quelqu'un a déjà eu un cas comme ça.

    Merci d'avance.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur de Données
    Inscrit en
    Janvier 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de Données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 79
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    j'ai avancé sur mon sujet.

    je n'ai pas réussi à trouver de fonction pour calculer des heures ouvrées avec des horaires différents selon les jours.

    j'ai donc décider de "lister" les différents cas possible de jour et heure de fin théorique en fonction du jour et de l'heure de début (1er tableau) :

    Je me suis rendu compte qu'il était possible de regrouper les cas (2ème tableau)

    Nom : Liste_Cas.jpg
Affichages : 4012
Taille : 198,2 Ko

    il ne me reste qu'à "traduire" cela dans Excel.

    pour trouver le jour de la semaine, il y a la fonction JOURSEM, mais pour l'heure, je n'arrive pas à tester si l'heure de début saisie (format hh:mm) est bien entre une heure de début et une heure de fin. (il y a la fonction AND() mais je n'arrive pas à l'appliquer à des heures.

    je n'arrive pas non plus à ajouter ou soustraire X heures à une cellule (au format hh:mm)

    des idées pour ce between avec des heures et ajouter / soustraire des heures ?

    Merci d'avance.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si ça peut t'aider!
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Tu as déjà pas mal travaillé et peut-être que j'arrive trop tard, mais voici une proposition. La formule est suuuuuper longue. Il y a peut-être plus simple, mais c'est ce que j'ai réussi à faire ...
    En C2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(TRONQUE(B2)-TRONQUE(A2)>7;"plus d'une semaine";SI(ET(JOURSEM(A2;2)>=1;B2<6-JOURSEM(A2)+A2);(TRONQUE(B2)-TRONQUE(A2)+1)*13-(HEURE(A2)+MINUTE(A2)/60-6,5)-(19,5-HEURE(B2)-MINUTE(B2)/60);SI(ET(JOURSEM(B2;2)=6;TRONQUE(B2)-TRONQUE(A2)<=5);(6-JOURSEM(A2;2)-1)*13+19,5-HEURE(A2)-MINUTE(A2)/60+HEURE(B2)+MINUTE(B2)/60-8,5;SI(ET(B2-A2<=7;JOURSEM(A2;2)>=JOURSEM(B2;2);JOURSEM(A2;2)<>6);(JOURSEM(B2;2)-1)*13+19,5-HEURE(B2)-MINUTE(B2)/60+7+(6-JOURSEM(A2;2)-1)*13+HEURE(A2)+MINUTE(A2)/60-6,5;15,5-HEURE(A2)-MINUTE(A2)/60+(JOURSEM(B2;2)-1)*13+19,5-HEURE(B2)-MINUTE(B2)/60))))
    Nom : horaires.png
Affichages : 3924
Taille : 45,5 Ko
    Bon après, je pense qu'en VBA, ce serait un peu plus clair quand même.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur de Données
    Inscrit en
    Janvier 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de Données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 79
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Merci beaucoup.

    dysorthographie > Merci. J'ai regardé mais j'avoue ne pas trop savoir ou chercher (entre les formules et le code VBA) pour trouver ce dont j'ai besoin

    riaolle > Merci. mais j'ai recopié ta formule, et il y a un problème quand la date de fin et identique à la date de début.

    Si date début = 12/05/2017 10:30 et date de fin = 12/05/2017 11:30, le résultat me donne 71 au lieu de 1
    Si date début = 12/05/2017 10:30 et date de fin = 12/05/2017 18:30, le résultat me donne 64 au lieu de 8

    et effectivement, vu la taille de la formule, je suis un peu perdu pour savoir ou modifier.

    car si TRONQUE(B2)-TRONQUE(A2) = 0 (même jour donc) , il faut juste faire un heure fin - heure début non ?

  8. #8
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Le fichier pour que tu puisses voir.
    Fichiers attachés Fichiers attachés

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur de Données
    Inscrit en
    Janvier 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de Données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 79
    Points : 20
    Points
    20
    Par défaut
    Merci pour le fichier.

    je vais regarder cela en détail si ce que j'ai fait ne convient pas.

    car de mon côté, j'ai réussi à calculer la date et l'heure théorique pour clôturer la réclamation dans les délais (48 heures ouvrées).

    ça me permet d'avoir une estimation du nombre de jours ouvrés entre la date du jour et la date théorique de clôture, et une fois la réclamation clôturée, je calcul juste si ça a été clôturé dans les temps ou non.
    Nom : délai.jpg
Affichages : 4143
Taille : 171,4 Ko

    pour cela, j'utilise des colonnes cachées pour savoir en autre le jour de la semaine, c'est c'est avant ou après telle heure...

    Nom : délai2.jpg
Affichages : 4174
Taille : 244,0 Ko

    cela simplifie la formule en colonnes S et T.

    Le fichier est disponible en pièce jointe pour ceux que ça intéresse (étant très spécifique et assez peu personnalisable facilement, je ne pense pas, mais au cas ou)
    Fichiers attachés Fichiers attachés

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Août 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Résolution avec un peu de VBA
    Bonjour,

    J'ai eu la même problématique avec un faux espoir de résolution sur ce sujet :/
    Avec un peu de VBA j'ai résolue ma problématique:
    Calcul délais GTR.xlsm

    Cdt

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

Discussions similaires

  1. SAP calcul des délais de livraison
    Par dmilosevic dans le forum SAP
    Réponses: 2
    Dernier message: 28/02/2011, 10h09
  2. [Table Paradox] Calculer des heures
    Par pierrot67 dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/04/2007, 12h37
  3. Comment calculer des heures sur access
    Par chakib47 dans le forum Access
    Réponses: 2
    Dernier message: 09/03/2007, 13h38
  4. calcul des heures
    Par meddeb2001 dans le forum Access
    Réponses: 2
    Dernier message: 06/07/2006, 17h55
  5. probleme avec le calcul des heures
    Par aibar dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 00h38

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