XL 2013 Calcul temps passé d'une pièce en heures ouvrées

APg

XLDnaute Nouveau
Bonjour,

Je souhaite calculer le temps passé d'une pièce en attente dans un poste de travail durant les horaires de travail qui sont de 7h15 à 16h22 avec une pause de 45 minutes et deux de 10 minutes.
Sachant que la pièce peut rester sur place plus d'une journée.

Cordialement

Merci
 

Pièces jointes

  • Classeur1.xlsx
    19.2 KB · Affichages: 10

APg

XLDnaute Nouveau
Ok, une fonction personnalisée sur un principe assez simple à défaut de mieux.
Le mieux serait un formule qu'il me faudrait 3 jours à mettre au point ! Avec un résultat totalement illisible et non maintenable !

Le principe de cette fonction n'est pas très subtil (au temps pour moi :) ) mais a le mérite d'être facilement lisible.
On indique dans une table des 1440 minutes d'une journée celles qui sont ouvrées ou pas selon les jours de la semaine (1 table pour Lundi - Jeudi, 1 table pour Vendredi). Ces tables ne sont chargées qu'une seule fois dans la session Excel.
Chaque minute de l'intervalle de temps pour la pièce est alors comparé aux minutes des tableaux pour avoir au final le nombre de minutes ouvrées d'attente.

J'ai fait quelques petits tests mais ne suis pas sûr à 100% de la validité du truc car il y a beaucoup de cas différents.
Sachant que comme d'habitude dans l'art de la programmation, le plus difficile est de bien gérer les poteaux et les intervalles, et là c'est pas ce qui manque !

Complète par tes tests et dis-moi si tu trouves des erreurs.
Merci bien, ça me semble bon et correct :)
 

Douds68160

XLDnaute Occasionnel
Ok, une fonction personnalisée sur un principe assez simple à défaut de mieux.
Le mieux serait un formule qu'il me faudrait 3 jours à mettre au point ! Avec un résultat totalement illisible et non maintenable !

Le principe de cette fonction n'est pas très subtil (au temps pour moi :) ) mais a le mérite d'être facilement lisible.
On indique dans une table des 1440 minutes d'une journée celles qui sont ouvrées ou pas selon les jours de la semaine (1 table pour Lundi - Jeudi, 1 table pour Vendredi). Ces tables ne sont chargées qu'une seule fois dans la session Excel.
Chaque minute de l'intervalle de temps pour la pièce est alors comparé aux minutes des tableaux pour avoir au final le nombre de minutes ouvrées d'attente.

J'ai fait quelques petits tests mais ne suis pas sûr à 100% de la validité du truc car il y a beaucoup de cas différents.
Sachant que comme d'habitude dans l'art de la programmation, le plus difficile est de bien gérer les poteaux et les intervalles, et là c'est pas ce qui manque !

Complète par tes tests et dis-moi si tu trouves des erreurs.
Bonjour Dudu2
Wouah franchement bravo, je regarde le code et je ne le comprend pas trop #noob. car j'aimerais l'utiliser pour un de mes fichier mais dans le sens inverse, ...
Arriverais tu a m'expliquer comment ecrire le code ?

Merci ;)
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
@Douds68160
Ce code n'est pas très compliqué, on ramène tout à la minute:
- Les 1440 minutes qu'il y a dans un jour dont la propriété ouvrée (True / False) est dans le tableau.
(En fait 2 tableaux différents selon que c'est Lundi-Jeudi ou Vendredi, les Samedi-Dimanche sont non ouvrés).
- Les X minutes qu'il y a dans l'intervalle d'attente de la pièce en partant de la minute de la date de début (par exemple la minute 605 pour la date 01/02/2020 à 10h05 car 10 x 60mn + 5 mn)
- Le tableau à l'indice 605 et aux suivants dit si la minute est ouvrée ou pas
- A chaque changement de jour de l'indice (indice module 1440 = 0) on vérifie ce qu'il y a à faire selon le jour.
- Et fait cette manip pour X minutes concernées.

Explique ce que tu veux faire, peut-être dans un autre sujet dédié ?
 

Dudu2

XLDnaute Barbatruc
@APg
Dans ton fichier, il y a des heures d'entrée et de sortie qui ne sont pas dans les heures ouvrées:
29/11/2019 06:23 29/11/2019 06:27
Ou qui sont en plus un samedi:
30/11/2019 06:05 30/11/2019 08:55
Tu es sûr qu'il n'y a pas d'heures de travail le samedi ? Il y a beaucoup d'items pour le samedi !
 

Dudu2

XLDnaute Barbatruc
Pour le décompte il vaut mieux retourner l'information en minutes pour avoir une valeur numérique précise.
En effet, il y a des temps d'attente qui dépassent les 24h et la fonction TimeValue() ne le supporte pas.
Donc retour en minutes et une colonne avec formule pour convertir en #00h00 mais format texte.
 

Pièces jointes

  • Temps Attente Pièce.xlsm
    39 KB · Affichages: 13

APg

XLDnaute Nouveau
@APg
Dans ton fichier, il y a des heures d'entrée et de sortie qui ne sont pas dans les heures ouvrées:
29/11/2019 06:23 29/11/2019 06:27
Ou qui sont en plus un samedi:
30/11/2019 06:05 30/11/2019 08:55
Tu es sûr qu'il n'y a pas d'heures de travail le samedi ? Il y a beaucoup d'items pour le samedi !
Il y a des heures supplémentaires concernant les ouvriers, ce qui a un impact pour les pièces:
de 05:15:00 à 07:14:59 et de 16:22:00 à 18:21:59 du lundi au jeudi
de 04:45:00 à 07:14:59 et de 15:22:00 à 17:21:59 le vendredi
Il peut y avoir des extras jusqu'à 21:14:59 du lundi au jeudi et jusqu'à 20:39:59 le vendredi
et le samedi de 05:00:00 à 12:59:59
 

APg

XLDnaute Nouveau
Pour le décompte il vaut mieux retourner l'information en minutes pour avoir une valeur numérique précise.
En effet, il y a des temps d'attente qui dépassent les 24h et la fonction TimeValue() ne le supporte pas.
Donc retour en minutes et une colonne avec formule pour convertir en #00h00 mais format texte.
C'est pour ça qu'il y a des 0 minutes entre deux dates différentes pour les samedis
 

Discussions similaires

Réponses
4
Affichages
322
Réponses
5
Affichages
512
Réponses
3
Affichages
1 K

Statistiques des forums

Discussions
312 164
Messages
2 085 875
Membres
103 007
dernier inscrit
salma_hayek