Histogramme pointage techniciens

Bonjour,

Ci joint un fichier qui recense les pointages de mes techniciens. Chaque ligne est un pointage avec une heure de début et une heure de fin.

J'aimerais faire un histogramme pour voir les pointages entre 8h et 9h, entre 9h et 10h, entre 10h et 11h etc.. jusqu'à 17h.

En particulier pour les pointages de maitrise que l'on retrouve en colonne "désignation".

Quelqu'un à t'il une astuce pour calculer le nombre d'heure pour chaque intervalle (8-9, 9-10...)?

D'avance merci

Guillaume

32forum-excel.xlsx (97.35 Ko)

Bonjour,

Sauf erreur de ma part, votre tableau structuré n'est pas directement exploitable. Je pense qu'il vous faut créer une table des tranches horaires qui décomposerait chaque journée de travail. Vous pourriez ensuite analyser cette table avec un graphe croisé dynamique.

Bonjour,

Merci pour votre réponse. Effectivement il me faut 11 colonnes (7h-8h puis 8h-9h etc...) dans lesquelles j'indique le temps passé dans chaque tranche horaire. Mais avez vous une idée comment faire cela a partir de ce que j'ai? Cela me parait compliqué...

Bonjour,

Il y a beaucoup d'incohérance dans votre fichier c'est craiment pas propre, c'est rempli par qqun ?

Deuxième remarque. On ne met JAMAIS de ligne vides dans un tableau struturé

Re,

J'ai cela comme début.

Dite moi si on s'y approche

EDIT : rien dit je suis a coté de la plaque je pensais que tu voulais seulement le nombre de pointage

12forum-excel.xlsx (149.37 Ko)

Bonjour,

Le tableau est rempli par les techniciens avec leur tablette. c'est à dire que lorsqu'ils sont en intervention, ils pointent l'heure de début puis l'heure de fin de l'intervention, puis cela incrémente la base de donnée.

Je prend un exemple. Une ligne avec heure de début 7h30 et heure de fin 9h20, J'aimerais que mon tableau calcul seul et remplisse les 11 colonnes représentant les créneaux horaires, c'est à dire dans ce cas là 30 minutes dans le créneau 7 à 8, 60 minutes dans le créneau 8 à 9 puis 20 minutes dans le créneau 9 à 10.

J'ai mis en PJ un tableau qui montre ce que je voudrais. Les colonnes 8 à 9, 9 à 10... se rempliraient toutes seules en fonction de l'heure de début et l'heure de fin.

J'espère que c'est plus clair.

Guillaume

13forum-excel.xlsx (98.71 Ko)

Bonjour Guillaume,

Je pense que vos données devraient se collecter dans un ongletTranches horaires selon cette forme :

capture

Il faudrait donc déclencher un événement après saisie de l'heure de fin pour injecter les données dans l'onglet Tranche horaire, ou plus simplement faire une procédure pour générer une situation entre deux dates (ex : 1er trimestre de l'année). Cette dernière méthode serait plus fiable.

Oui mais honnêtement je ne vois pas du tout comment faire. Je pense que ma demande est trop complexe.

Cela demande surtout du temps...

La fonction "TrancheHoraire" ci-dessous permet de réaliser le calcul sur une tranche horaire de 1 à 23. Bien entendu, il faut pour cela que le fichier soit du type .xlsm.

Celle-ci ne fonctionne que si les heures début ou fin sont formatées comme dans le tableau ou si vides, les autres cas provoquent une erreur (comme 0 par exemple).

Toutefois, vu le nombre de cellules avec cette fonction, le temps de réponse est considérablement ralenti. Il faudrait envisager plutôt de réaliser ce calcul via une procédure où on ne remplirait les cellules qu'avec le résultat de la fonction.

La fonction est à placer dans un module standard.

capture
Option Explicit

Function TrancheHoraire(ByVal HeureDebut As Variant, ByVal HeureFin As Variant, ByVal Tranche As Integer) As Integer

Dim I As Integer
Dim TabDebut As Variant, TabFin As Variant
Dim MinuteDebut As Integer, MinuteFin As Integer

    TrancheHoraire = 0
    If HeureDebut = "" Or HeureFin = "" Then Exit Function

    TabDebut = Split(HeureDebut, "h"): MinuteDebut = TabDebut(0) * 60 + TabDebut(1)
    TabFin = Split(HeureFin, "h"): MinuteFin = TabFin(0) * 60 + TabFin(1)

    For I = MinuteDebut To MinuteFin - 1
        Select Case I
               Case Tranche * 60 To Tranche * 60 + 59
                    TrancheHoraire = TrancheHoraire + 1
        End Select
    Next I

End Function

Voilà un exemple de ce que vous pourriez obtenir en transposant vos données dans un onglet Tranche horaire :

Sans les désignations vides.

capture

Par agent sur 2021 uniquement.

capture1

C'est parfait merci beaucoup!!!

Rechercher des sujets similaires à "histogramme pointage techniciens"