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

Requêtes et SQL. Discussion :

Problème calcul d'heures travaillées


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut Problème calcul d'heures travaillées
    bonjour les amis

    je me retourne encore une fois vers vous pour une difficulté sur des heures travaillées

    je calcule (j'aimerais le faire) le coût de revient salarial des éducateurs sportifs de note association
    j'ai bien réussi a bricoler quelque chose sauf que je viens de m'apercevoir que c'est inexaxct car certains paramètres ne sont pas pris en compte

    voila la table que j'ai

    nom des profs le jour de cours heures debut et heure de fin ce qui donne ;


    durand lundi 9:00-10:00
    durans mardi 16:00-17:00
    dupond lundi 9:00-10:00
    tartampion lundi 14:00-15:00


    etc. etc. sachant qu'il y a une quinzaine de profs sur des spécialités différentes qui donnent qq heures par jour du lundi au samedi (tous ne travaillent pas le samedi) dans + salles

    j'ai bien donc calculé pour chaque prof sont total horaire de travail mais pour ….une semaine complète (puisque j'ai le detail jour et horaire pour chaque prof dans ma table "Cours et horaires")

    pour ramener ça à l'année j'ai enlevé les semaines de vacances (dans une table j'ai le n ombre de semaines de vacances ) des 52 semaines que compte l'année mais c'est très approximatif !

    or c'est là que ça se corse et que je n'y vois pas lumière il faut tenir compte du jour de début de saison cette année c'est le 12/09/2018 un mercredi; donc déjà tous les cours du lundi et mardi de la semaine de rentrée ne sont pas donnés pour les profs concernés et tenir compte aussi de la fin de saison en gal le 30 juin 2019 sur la saison 2018 - 2019 mais pas forcement vrai (saison commence en sept 2018 jusque juin 2019)


    deuxièmement il faut tenir compte des dates de vacances scolaires et des jours fériés qui ne sont pas inclus dans ces vacances : pont de l'Ascension donné sur le site) et le 1 et 8 mai par exemple (on a les périodes sur le net par l'académie de paris ce n'est pas un problème d'avoir les périodes)'est un peu complexe pour moi surtout que je n'écris pas de VBA donc par requêtes et critères ça m'irait bien et surtout il faut modéliser pour que ça d'adapte à toutes les saisons a venir

    Tout ça pour avoir le cumul des heures travaillées effectivement par prof lol Mais là je suis dans le potage je n'arrive pas à trouver le montage et le pivot


    cordialement

    Patrick

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut,
    Pourquoi vous focaliser sur les 36 semaines de cours par an.
    Au lieu de saisir le jour (lundi à samedi) saisissez plus tôt les dates (12/09/2018, etc.)

    Ainsi et à l'aide d'au moins une req vous pourrez calculer le numéro de semaine des dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DatePart("ww",[DateSequence],VbMonday)
    ou PartDate("ss";[DateSequence];2)
    , faire un regroupement et calculer la différence entre HeureFin et Heuredeb des séquences. Et avec une autre req, ayant pour source celle de ci-dessus faire la somme des différences calculées et faire un regroupement par éducateur et numéro semaine.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut merci a Hyperion
    Je te remercie de ta diligente réponse hyper sympa mais j'ai réfléchi cette nuit il faisait tellement chaud !

    pour séquencer l'activité comme tu me l'as demandé et fais voir dans ton zip ça va faire un paquet de saisie nous avons 15 éducateurs sportifs qui se répartissent 23 activités avec des heures de cours fixes par jour et toute la saison identique

    Durand philippe zumba lundi 18:30 19h30 fixé une fois pour toute et pour toute la saison par exemple

    pour mieux comprendre mon problème je vais te joindre une copie du formulaire tiré de la table Cours et horaires" qui me sert de planning pour envoyer aux adhérents, aux profs et bien entendu au calcul d'heures pour l'instant
    j'avais fait ça parce que c'est assez simple à corriger d'une saison sur l'autre et l'idée des coûts salariaux m'a pris récemment pour améliorer toute une série de stats et avoir un calcul de rentabilité précis donc j'ai fait avec les outils déjà en place !

    et voici également une copie de l'état "coût salaire prof " tiré de la requête du même nom, le but est de remplacé les heures mal calculées de la colonne 2 "total heures travaillées" par les heures véritables des profs compte tenu des vacances scolaire ou on arrête les activités

    moi j'avais pensé pour éviter cette fastidieuse saisie des plannings il y a 210 dates quand même et + de 20 activités sur 6 jours ! à une solution (que je ne sais pas faire dans les formules) du type début saison 12/09/2018 fin de saison 30/06/2019 (ces 2 dates peuvent fluctuer un peu)

    j'ai fait une table vacances scolaires ( ci joint copie d'écran)

    donc pour chaque période peut on trouver combien il y a de lundi, mardi , mercredi jeudi vendredi et samedi on enlève ceux des vacances ?
    et j'ai déjà ou je peux avoir sans problème pour chaque prof la durée des cours par jour pour chacun. Il suffit de multiplier le nbre de lundi de durand par son nombre d'heures travaillées avec un regroupement

    est ce faisable quelque chose de simple peu ou prou dans cet esprit ?

    car n'oublions pas que si l'on rentre le 12 septembre c'est un mercredi donc une semaine incomplète

    Il y a juste un petit os sur la table vacances scolaires les 4 premières périodes sont les vacances officielles données par l'académie mais le 8 mai est une date fluctuante jour férié non comprise dans les vacances ( comme le 1 mai, pâques etc) or cette date est un peu "emmerdante" pour moi car les profs des sections danses(rock, salsa et danses de salon) peuvent la travailler leur statut est indépendant ils ne veulent pas perdre de salaire normal)

    Donc une semaine avant ils font un sondage et s'il y a assez d"adhérent présent ils travaillent donc on leur paye les heures, normal (ça peut aussi arriver pour d'autres profs)

    ce jour flottant (peut être peut il y e n'avoir un ou 2 en supplément) sont à attacher pour chaque prof s'ils sont remplis ils sont fériés donc non travaillés et a retirer il faut donc déterminer quel jour il tombe mercredi , jeudi etc

    Ai je été clair et ai je bien posé le problème ?

    En fait ceci pour éviter à notre secrétaire seul personnel payé ( malgré nos 650 membre on est pas bien riche la preuve j fais ce que je peux bénévolement pour aider) de passer un temps de fou sur la saisie de ces plannings d'heure

    qu'en penses tu suis je un doux rêveur ou une solution de substitution peut être trouvée ?


    Amicalement

    si on ne peut pas faire autrement je ferais la première saisie ( pour la soulager) de ce big planning mais j'aimerais mieux éviter lol surtout que rebelote à chaque saison!
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Bonjour,
    Moi je suis en hiver, alors une capture d'écran de votre fenêtre des relations serait la bienvenue avant d'émettre une quelconque réponse.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut voici la copie des relations de la bases
    voici le document

    s'il manque une requête ou une table aux relations me le demander
    si vou préférez un zip du back et du front je peux aussi peut être plus simple ? au choix
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Pour 1 inscription il y a 1 et 1 adhérent ET pour 1 adhérent il y aura au moins 1 inscription ou N inscriptions ?
    Pour 1 inscription il y aura au moins 1 activité ou N activités pour 1 même adhérent ?
    Pour 1 inscription il y aura au moins 1 règlement ou N règlements par un même adhérent ET pour un règlement au moins 1 paiement ou N paiements ?
    Pour 1 prof il y aura au moins 1 activité pratiquée ou N activités pratiquées ET pour 1 activité il y aura au moins 1 prof ou N profs la pratiquant ?
    Pour 1 ligne de planning il y aura 1 date, 1 prof, 1 activité, 1 niveau, 1 heuredeb, 1 heurefin, 1 salle
    etc.
    De toute façon, il vous faut un champ date pour pouvoir faire vos calculs de coûts hebdo, mensuels ou annuels.
    Il serait bon également de distinguer heuredeb et heurefin pour éviter de traiter le "-" dans votre solution.
    Etc.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut
    pour les activités effectivement les adhérents peuvent faire plusieurs activités donc N activités par adhérent


    Mais je ne comprend pas l'incidence du règlement et des paiements des adhérents sur les heures travaillées des profs ?! tous ces traitements sont déjà faits de façon indépendante à ce sujet ?

    pour l'instant j'ai enregistré comme la copie d'écran jointe les activitès par jours de la semaine (programme identique chaque semaine), par horaires et par prof . C'est vrai les horaires de cours sont sous la forme 10:00-11:00 et j'ai du employer dans la requête ce type de formule heuredebut: Gauche([Horaires];5) idem pour Heure de fin mais ça fonctionne, moi ce qui m'inquiète le plus c'est mon impossibilité a compter les lundi , mardi etc entre 2 dates

    en fait j'ai une table vacances scolaire valable pour tous les profs (pas de cours lors des congés scolaires) j'ai refait une table jour férie flottant (pour traiter le cas du 8 mai) attaché par prof

    Donc à mon, sens si dans une requête, j'arrive à mettre sur les séquences DateDebutSaison et DatefinSaison la formule pour cumuler les lundi , mardi jusqu'au samedi, auquel on retire ces mêmes jours dans les séquences vacances et jour férié flottant c'est réglé

    en fait je veux le cumul le plus juste possible des heures travaillées par prof durant la saison retiré des congés scolaires (que j'ai aussi en date début et date fin) et les jours fériés flottants que j'ai aussi j'ai été au plus simple dans la table puisque l'on indique le jour , la date j'ai donc tous les éléments pour calculer au plus simple les heures travaillées mais je suis un débutant autodidacte et Access me pose problème parfois surtout sur les heures et les dates

    Mon problème est de dire:

    entre le 12 sept et le 30 juin combien j'ai de lundi , mardi etc exemple: 38 lundi

    dans les séquences vacances combien j'ai de lundi , mardi etc exemple ( j'ai 4 séquence de vacances copie d'écran dernier message) donc admettons 5 lundi,1 en sept, 1en dec, 1 en fevrier, 2 en avril
    38-5 = 33 lundi je connais les heures travaillées par prof chaque jour de la semaine(une petite requête a faire assez simple) je n'ai plus qu'a multiplier le nombres d'heures cumulées par prof les lundi par le nombre de lundi pour un cumul annuel

    quand je compte les mercredi j'ai éventuellement pour certains prof le mercredi du 8 mais à retrancher ou pas ( mais ds ma table j'ai la date , le jour de la semaine , le prof concerné et la saison concernée !

    c'est cette partie ou je voudrais avoir de l'aide si c'est possible bien entendu mais j'ai tous les éléments pour le faire ?


    cordialement

    Patrick

  8. #8
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    re,
    comme vous voulez calculer le nombre de lundi, etc. entre 2 dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tblDate.Datedeb, tblDate.Datefin, DateDiff("ww",[Datedeb],[Datefin],2)-(Weekday([Datedeb])=2) AS NbLu, DateDiff("ww",[Datedeb],[Datefin],3)-(Weekday([Datedeb])=3) AS NbMa, DateDiff("ww",[Datedeb],[Datefin],4)-(Weekday([Datedeb])=4) AS NbMe
    FROM tblDate;
    Avec ce code, à adapter avec votre bdd, vous pourrez calculer selon vos saisons et jours fériés flottants ou non.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut code
    merci je vais voir ce que ça donne dans ma requête je mets ce code ou ?


    j'ai compris je vérifie merci à vous

    une question cette formule ne donne pas les jours ouvrés si c'est le cas c'est très bien j'ai les séquences de vacances donc je n'en ai pas besoin

    bonne nuit

    je pense que je vais pouvoir m'e ntirer

    Pat

  10. #10
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    "Il va y avoir du sport"
    Dans la mesure où votre tbl Cours horaire ne contient pas de champ "date", je ne sais pas comment vous allez réussir à calculer un nombre de lundi, etc. dans une amplitude de vacances scolaires, sans oublier vos JF flottants.
    Comme et a priori vous ne voulez pas saisir la bagatelle d'environs 210 lignes, par année scolaire, je vous souhaite bon courage. Pourtant bien souvent, il faut passer par là pour traiter l'essentiel. Dans votre cas, le planning des séances de sport et les coûts.
    J'espère que l'un de vos éducateurs ne sera pas amené à superviser une 7ème activité, parce que dans ce cas, il vous faudra ajouter des champs supplémentaires (Sport 7 enseigné, etc.) dans votre tbl EducateurSportif. Ou alors les doublons sont en prévision. Ce qui indique là, un problème de conception. Sans compter le reste.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut Reponse
    Désolé de répondre un peu tard mais quand on vous aide il est normal de répondre
    donc oui effectivement il y a eu un problème de conception au démarrage ce n'est ni mon métier ni même une passion et de plus ça faisait bien 10 ans que je n'avais rien fait sous Access

    j'ai hérité de ce job pour l'association il fallait bien que qq s'y colle !

    ensuite un développeur m'a bcp aidé bien entendu sur une base un peu de guingois il a fait ce qu'il a pu avec cette conception de départ sous évaluée par rapport à ce que c'est devenu!

    Une simple base administrative est devenue au fil du temps une aide a la décision, une série de statistiques et une trésorerie etc

    je me suis laissé un peu emporté pour avoir un vrai outil d'aide à la décision etc ...( ça c'était mon métier pas le développement ) ça fait a peu près le job c'est ce que l'on lui demande

    maintenant je sais qu'il faudrait qu'un vrai professionnel ou un amateur très éclairé refasse la base ça c'est une autre histoire il y a des mois de boulot ! et comme c'est pour une assos va veut dire gratos bien entendu si on n'avait eu les moyens on l'aurait donné à faire cela va de soi !

    de plus je ne vais pas saisir 210 lignes à moins que j'ai mal compris le montage (c'est encore possible lol) car dans la saison il y a environ une quarantaine de lundi, mardi etc a raison de 6 à 7 cours par jour ça doit faire dans les 1600 lignes bcp trop pour la secrétaire qui a plein de chose a faire surtout qu'il faudra répéter l'opération chaque saison !

    j'ai cru comprendre dans votre exemple qu'il fallait dater chaque cours par exemple? :

    lundi 17 sept gym active 8:45 a 9:45
    lundi 17 septembre Gym dance 9:45 à 10:45 etc.

    il y a 8 cours qui se répéteront tous les lundi

    et c'est valable aussi pour les autres jours de la semaine a peu près sur le même volume !

    Pour les éducateurs avec 7 activités c'est prévu très large en effet les profs en gal font au maxi 4 activités, des dérivés de leur activité principale (personne ne fait 7 métiers en même temps) par exemple un prof de zumba fera, cardio et peut être step

    Par contre on augmentera ou diminuera leurs heures de cours dans la semaine ça oui c'est possible d'une saison sur l'autre (parfois en cours de saison si un cours est catastrophique en terme de fréquentation mais c'est rarissime c'est en gal signé pour une saison)

    Pour pallier aux problèmes j'ai contourné, alors oui ce n'est pas élégant avec sûrement des étapes inutiles pour un spécialiste mais j'ai fait ce que j'ai pu en essayant de mettre à contribution le moins possible les gens

    comme j'ai le planning de la semaine avec les cours pour chaque jour delà semaine ça été facile de calculer dans une requête les heures travaillées pour chaque prof et par jour (lundi, mardi et)
    j'ai également la date début et fin de saison
    également les dates des vacances puisque j'ai ajouter ces 2 tables

    grâce à votre formule du calcul du nombre de jours de la semaine entre 2 dates, j'ai calculé le nombre pour chaque jour de là saison( les lundi , les mardi ... j'ai fait la même chose pour les vacances pour enlever les lundi des vacances au lundi de la saison (idem autres jours)

    comme j'ai aussi dans la table le jour de la semaine du jour flottant idem dans une colonne calculée avec des vrais faux ça a fait le job si le jour flottant est un mercredi je l'ai enlevé des mercredi bien entendu

    le solde représente le nombre de jours effectivement travaillés pour chaque jour( lundi, mardi...) multiplié parle nombre d'heures par jour exple : 33 lundi avec 3h30 par lundi = 3:30 * 33 le tout cumulé j'ai don le nombre d'heures réellement travaillées par prof en tenant compte des vacances et du jour férié flottant il n'y a plus qu'à multiplier par un taux horaire cette dernière phase n'est pas le plus compliquée

    Ce n'est certainement pas le chemin le plus simple ni le plus rationnel j'en conviens mais sans votre aide je n'aurais pas pu le faire je vous en remercie pour le reste ..... on fait ce que l'on peut je me suis attaqué à une tâche bien plus importante que celle imaginée avec des connaissances que je n'ai pas même si l'exercice d'imaginer tout ça m'a bcp plu


    Mais merci pour le coup de main tant que la base me donne les chiffres que je veux le plus juste possible ça me va de toute façon je n'ai pas le choix

    Bon dimanche

    Cordialement

    Patrik

  12. #12
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Avec du temps et des connaissances en modélisation, on peut effectivement créer des applications sous access qui ont un fonctionnement optimal.
    Vous évoquez "aide à la décision", mais si on analyse les éléments transmis, c'est "plus ou moins à la louche".
    Votre cout mensuel = 4 semaines !!
    C'est plus tôt 52 sem / 12 mois. Je ne sais pas pourquoi vous calculez des traitements hebdo, alors qu'ils sont mensualisés ou annualisés (privé ou public).
    Sauf erreur de ma part, par incompréhension, je ne comprends pas votre problématique du 8 mai, jour flottant. A ma connaissance, les seuls jours, non ordinaires, qui sont flottants, sont Pâques, Ascension et Pentecôte. il y a des fonctions qui permettent de traiter ces cas de figure.
    Le cas d'un planning hebdo type pouvant être "recopié" de semaine en semaine est réalisable à l'aide req, ce qui permettrait un léger gain de temps.
    La saisie de votre planning pourrait être améliorée. En l'état vous devez sélectionner un éducateur, une activité, puis un niveau. Il serait plus simple de créer des paires (activité/niveau) et d'affecter une de ces paires ou plusieurs, selon le cas, à chacun des éducateurs. Qu'une seule liste déroulante à mettre en œuvre dans votre planning.
    Access permet, avec ses langages qbe, sql, vba, macro de données de réaliser des opérations simples et/ou complexes.

    EDIT : 20180816 upgrade bdd
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [Toutes versions] calcul auto heures travaillées entre deux dimanches
    Par thomashawk21 dans le forum Excel
    Réponses: 2
    Dernier message: 01/06/2018, 09h27
  2. Réponses: 2
    Dernier message: 27/12/2016, 13h12
  3. requete calcul heures travaillées par semaine
    Par ben35 dans le forum Modélisation
    Réponses: 2
    Dernier message: 09/06/2008, 09h56
  4. Problème de calcul sur heure
    Par Copernic09 dans le forum Langage
    Réponses: 8
    Dernier message: 09/05/2007, 09h47
  5. Calcul d'heures travaillées
    Par tiftay01 dans le forum Excel
    Réponses: 19
    Dernier message: 31/03/2007, 19h12

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