Calcul temps production : Pause, Déjeuner, Jours fériés

Bonjour à tous,

Le fin problème des jours ouvrables, jour fériés, temps de pause etc ..

Après avoir fait le tour de la toile, il y a un seul endroit où je peux trouvé la solution à mon problème, c'est ici.

Donc j'ai vu pas mal de sources où l'on a une partie de ma recherche mais pas au niveau de la difficulté que je cherche, je suis sur que cette "Exercice" va être utile à plus d'une personne.

Donc si vous avez déjà ouvert mon fichier vous avez surement compris ma demande.

1) Dans l'onglet "Temps" en colonne A j'y ajoute une date avec heure (démarrage de la production)

2) en colonne B (Fin de la production)

3) un tableau des horaires avec pauses puis un tableau jours fériés

Ce que j’aimerais obtenir c'est le temps passé en tenant compte de :

a)Pause

b) Pause déjeuner

c) jours fériés

Voir les tableaux

Pour corser le tout (si possible) en VBA

Merci à vous

Bon week-end

176temps.xlsm (16.55 Ko)

Bonjour à tous,

Bonjour à tous,

Pour corser le tout (si possible) en VBA

Pas de chance, je suis nul en VBA.

mais en formule ........

132temps.xlsm (13.17 Ko)

Merci beaucoup

C'est largement un très bon boulot

Mais je dois l'utiliser en VBA car il n'y a pas que ça que j'ai besoins

il y a beaucoup trop d'infos que je dois traiter en macro . en clair je fais appel à un résultat (fichier xlsx) d'une ligne de production, où je traite beaucoup d'informations et je vais avoir du mal à y ajouter tes formules dans VBA , style ce que tu viens de e donner se traduit en VBA par:

Selection.FormulaArray = "=RC[-1]-R2C7-R2C10-moins_J"

Bonjour à tous,

J'ai ça en stock=>

Edit : suppression du fichier contenant des erreurs

Dans l'onglet "Cfg", il y a les horaires pour chaque jour de la semaine avec pause matin, midi, aprèm et les jours de fermeture de l'entreprise (congés pour tous).

Le compte se fait aussi selon les fériés.

La date et heure de fin s'affichent après saisie de date+heure début et durée en heure (décimale ex 1,5 pour 1h30)

Pierre

Merci Pierre pour ta source,

Très bon programme, mais ce que je recherche c'est lui donner deux dates avec début et fin de la production et qu'il me calcule le temps passé

Le tiens il faut lui donner le temps de la production avec les dates et heures :)

Merci quand même

Ok, alors voici un autre avec le calcul dans les 2 sens, mais seulement une pause le midi

Pierre

Edit : fichier avec erreur supprimé

Merci Pierre,

Je suis en train de le tester seulement il me fait une erreur

espace espace2

Une ptite mise à jour s'impose on dirait

demo duree

Ceci dit il faut voir la méthode plus qu'autre chose ...

Pierre

Edit : fichier avec erreur supprimé

Merci Pierre,

C'est marrant fais un essai de ton coté avec les date du milieu ça ne marche pas chez moi, même erreur que plus haut

DébutFinDurée (calculée)
09/11/2021 09:0012/11/2021 14:3035
21/10/2021 11:0227/10/2021 12:32Erreur
21/10/2021 11:0227/10/2021 12:32Erreur
09/11/2021 09:0012/11/2021 14:3035

A tester

demo duree

NB : les durée tiennent compte des heures de travail en Cfg (horaires de test sans réalité réelle) avec 3 pauses/jour

Pierre

Edit : suppression du fichier contenant des erreurs

Merci Pierre pour ton aide

Je vais étudier ton programme logiquement demain :)

Bonne soirée

J'ai toujours des bugs , je dois forcer la fermeture de Excel (il rame)

Ok,

Voici une version nettoyée, code simplifié. Données à calculer en "Données", diverses contraintes en "Contraintes" et bouton pour calculer la liste des durées.

Si le calcul rencontre une erreur la durée s'affiche à zéro (pas de boucle sans fin).

Si erreur, il faudrait communiquer le fichier avec les données qui posent problème, car il est difficile de débuguer à l'aveugle.

A tester.

Pierre

demo duree

Rq : écrit sous PC avec Office 32bits

Edit : suppression du fichier contenant des erreurs

Bonjour, désolé mais ça ne marche pas

J'ai essayé avec plusieurs dates :(

1 2
  1. Ben déjà le 14 nov est un dimanche et selon votre grille, pas d'horaire de travail ...
  2. Par ailleurs dans votre grille les horaires ne sont pas correctement indiqués, si l'aprèm est de 13h à 15h45, il suffit de l'indiquer dans la 3ème partie de la grille et laisser la 4ème partie vide, peut importe les entêtes
  3. capture d ecran 2021 11 14 173045

J'avais mis des exemples exprès pour indiquer comment la grille devait être remplie ...

Re désolé pour mes erreurs, voici le résultat, il m'affiche 1h00 pour le 14 ...

Peut être que j'ai fais une autre erreur ?

Voici mon fichier .

DébutFinDurée (calculée)
09/11/2021 09:0010/11/2021 12:057:50
21/10/2021 11:0209/11/2021 12:480:00
22/10/2021 11:2725/10/2021 14:350:00
10/11/2021 10:0016/11/2021 10:3012:15
16/06/2021 08:1623/06/2021 09:550:00
14/11/2021 07:3014/11/2021 08:301:00
10/11/2021 07:3010/11/2021 08:301:00
demo duree

Pour zapper les saisies d'un jour autre qu'un jour travaillé, modifiez la procédure d'appel :

Sub Calcul()
Dim lg As Integer, i As Integer

    IniT
    With Sheets("Données")
        lg = .Cells(Rows.Count, "A").End(xlUp).Row
        For i = 2 To lg
            If Not .Cells(i, "A").Value = "" Then
                If Jovr(.Cells(i, "A").Value) = .Cells(i, "A").Value Then
                    If Not .Cells(i, "B").Value = "" And .Cells(i, "c").Value = "" Then
                        .Cells(i, "c").Value = Calcul_Duree(.Cells(i, "A").Value, .Cells(i, "B").Value)
                    End If
                End If
            End If
        Next i
    End With
End Sub

Merci Pierre d'avoir pris ton temps pour moi.

J'ai compris une chose c'est effacer avant de cliquer sur le bouton, je vais l'ajouter dans la macro

Fin = Worksheets("Données").Range("A" & Rows.Count).End(xlUp).Row
Range("C2:C" & Fin).Clear
Range("C2:C" & Fin).Select
Selection.NumberFormat = "[h]:mm"

Affaire réglé

A propos j'ai vu ton site, et je penses qu'il y a des trucs qui vont m’intéresser

Rechercher des sujets similaires à "calcul temps production pause dejeuner jours feries"