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

  1. #1
    Membre à l'essai
    Etablir un plan de comptage: dispatcher une liste de données à la semaine
    Bonjour à tous
    Je viens une nouvelle fois solliciter vos neurones prolifiques.
    Merci d'avance de l'aide que vous pourrez m'apporter

    sous AC-2013, je dois établir un plan d'inventaire réparti sur nb jours ouvrés par semaine, répétitif sur le mois:

    pouvez-vous m'aider à préparer cette liste qui contiendrait Date de comptage et Référence?

    j'ai déjà une autre liste que l'on compte 1 fois sur le mois et je trouve le code un peu "compliqué", mais là je bloque sur la boucle de répétition et j'aimerais prendre en compte les jours, exemple 01 mars 2019 est un vendredi,

    La liste peut évoluer en nombre d'un mois à l'autre, et je sais à l'avance les jours ouvrés, le numéro de semaine, le code jour.

    Pensez-vous qu'il soit possible de diviser le nombre de références par ou le nb de jours ouvrés dans la semaine et de d'affecter chaque portion à 1 jour particulier?

    J'espère vous avoir donné suffisamment d'informations, n'hésitez pas à m'en demander si besoin.

    Merci, @ bientôt
    Fleur59

  2. #2
    Modérateur

    Bonjour et désolé mais je ne comprends pas ce que tu veux.

    Pourrais-tu mettre un exemple de ce que tu veux obtenir ?

    Et en Access on peut tester le jour de la semaine avec Weekday() (Voir l'aide pour les paramètres) et savoir si c'est un lundi, mardi, ....

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Bonjour, j'explique un peu mieux
    je dois préparer l'inventaire mensuellement
    j'ai aujourd'hui 36 références (ce nombre peut changer le mois suivant)
    je dois faire l'inventaire de la totalité de ces pièces sur la semaine et ce toutes les semaines
    je pensais, vu que les semaines ne sont pas entières en début et en fin de mois (début ou fin de semaine), diviser ces 36 pièces par le nombre de jours ouvrés dans la semaine (si 5) dans ce cas (7 pièces par jour pendant 4 jours et la dernière pièce le 5° jour et donc affecter les portions en fonction du JourSemaine, pour faire une rotation sur toutes les références
    mais comment faire si il y a un jour férié dans les semaines en milieu de mois?
    Merci pour votre aide à venir
    Fleur59

  4. #4
    Rédacteur/Modérateur

    Bonjour,

    Si je peux me permettre, je pense que votre demande reviens à générer les jours ouvrés du mois et pour chaque jour compter les référence qui sont enregistrées pour ce jour, un peu comme dans cette discussion :

    https://www.developpez.net/forums/d705002/logiciels/microsoft-office/defis/access-sql-combler-vides-enregistrements/

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON


    Quand on a la tête dans le guidon,...

  5. #5
    Modérateur

    Donc si je te suis biens tu veux avoir :

    Semaine 1

    Lundi, pièce de 1 à 7
    Mardi, pièce de 8 à 14
    Mercredi, pièce de 15 à 21
    Jeudi, pièce de 22 à 28
    Vendredi, pièce de 29 à 36

    et mettons si le mercredi est férié tu aurais

    Lundi, pièce de 1 à 9
    Mardi, pièce de 10 à 18
    Jeudi, pièce de 19 à 27
    Vendredi, pièce de 28 à 36

    Et que fais-tu pour les semaines de début ou de fin qui ne sont pas complètes ?

    En mettant les choses au pire tu pourrais avoir une semaine de 1 journée.
    Puisque tu as des variations par mois, ta planification doit être réinitialisée à chaque 1er du mois.
    Dois-tu tout inventorier le même jour.

    Il n'existe pas en Access de fonction toute faite qui tient compte des jours fériés.
    La solution habituelle la plus simple est d'avoir une table des jours fériés de l'année qu'on rempli manuellement en début d'année.

    Puis tu peux faire quelque chose comme :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Public function CalculerNbJour(prmDateDebut as date, prmDateFin as date) as long
       dim result as long
       dim dateCourante as date
     
       for dateCourante = prmDateDebut to prmDateFin
          select case weekday(datecourante, vbMonday)
             case 1 to 5
                'Lun à Ven
     
                if isnull(dfirst("DateConge", "tblCalendrierConge", "[DateConge]=#" & format(DateCourante, "yyyy-mm-dd")) then
                    'Ce n'est pas un congé
                    result=result+1
                end if
     
             case 6, 7
                 'Sam, Dim
     
          end select
     
       next dateCourante
     
       CalculerNbJour=result
    end function


    À mettre dans un module.

    Cela va te donner le nombre de jours entre 2 dates.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre à l'essai
    Bonjour Marot_r
    pour la cadence c'est tout à fait cela.
    j'ai déjà la liste pour le mois à établir, par exemple pour Février 2017 (table existante, je peux donc en extraire le nombre de date par semaine pour établir les séries cadencées)


    [TH]date[/TH]
    [TH]semaine[/TH]
    [TH]jour[/TH]
    01/02/2019 5 6
    04/02/2019 6 2
    05/02/2019 6 3
    06/02/2019 6 4
    07/02/2019 6 5
    08/02/2019 6 6
    11/02/2019 7 2.......
    25/02/2019 9 2
    26/02/2019 9 3
    27/02/2019 9 4
    28/02/2019 9 5

    EN MARS JE POURRAI REPRENDRE LA SUITE SUR LES JOURS

    01/03/2019 9 6
    04/03/2019 10 2.............

    du coup à chaque jour sa série de pièces, cela permettrait une continuité d'un mois sur l'autre avec un petit recouvrement si le nombre de références augmentait
    Mon idée te semble-t-elle logique?
    Merci

  7. #7
    Membre à l'essai
    Bonjour à tous
    On dit que la nuit porte conseil…
    Je pense pouvoir contourner mon problème de semaines incomplètes en début et fin de mois:
    Comme je connais mon calendrier à l'avance (sans samedi, dimanche, jours fériés ou périodes de fermeture),
    je connais donc le nb de jours disponibles sur le mois. Si je considère ce nombre divisé par 5 (nb de jours habituel sur une semaine), et je ne garde que la partie entière, j'obtiens un nombre de semaine "standard".
    Je copie ma liste de références autant de fois que de semaines "standard" et je numérote de 1 à X(pas de risque de mélange et de regroupement de références identiques sur la même semaine)
    je calcule ma cadence en divisant le nombre total de références X+1 par le nombre de jours disponibles et j'affecte autant de références par jour.

    ce nouveau schéma de calcul vous paraît-il sensé?

    Si oui, je vais pouvoir me repiquer sur le code que j'ai actuellement à partir de "je numérote de 1 à X...(code existant pour un inventaire étalé sur le mois)
    Il me reste à trouver le code pour "je copie ma liste de références autant de fois que de semaines "standard""
    Avez-vous une idée?
    Merci de votre aide
    Fleur59

  8. #8
    Rédacteur/Modérateur

    Bonjour,

    Citation Envoyé par Fleur59 Voir le message
    Bonjour Marot_r
    pour la cadence c'est tout à fait cela.
    j'ai déjà la liste pour le mois à établir, par exemple pour Février 2017 (table existante, je peux donc en extraire le nombre de date par semaine pour établir les séries cadencées)


    [TH]date[/TH]
    [TH]semaine[/TH]
    [TH]jour[/TH]
    01/02/2019 5 6
    04/02/2019 6 2
    05/02/2019 6 3
    06/02/2019 6 4
    07/02/2019 6 5
    08/02/2019 6 6
    11/02/2019 7 2.......
    25/02/2019 9 2
    26/02/2019 9 3
    27/02/2019 9 4
    28/02/2019 9 5

    EN MARS JE POURRAI REPRENDRE LA SUITE SUR LES JOURS

    01/03/2019 9 6
    04/03/2019 10 2.............

    du coup à chaque jour sa série de pièces, cela permettrait une continuité d'un mois sur l'autre avec un petit recouvrement si le nombre de références augmentait
    Mon idée te semble-t-elle logique?
    Merci
    Si je reprends votre tableau, vous disposez de 36 références, que ce passe-t-il pour la semaine 5 et le vendredi 1er février, seul jour ouvré pour cette semaine ?

    Lui attribuez vous 36 ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON


    Quand on a la tête dans le guidon,...

  9. #9
    Rédacteur/Modérateur

    Bonjour,

    Citation Envoyé par Fleur59 Voir le message
    Bonjour à tous
    On dit que la nuit porte conseil…
    Je pense pouvoir contourner mon problème de semaines incomplètes en début et fin de mois:
    Comme je connais mon calendrier à l'avance (sans samedi, dimanche, jours fériés ou périodes de fermeture),
    je connais donc le nb de jours disponibles sur le mois. Si je considère ce nombre divisé par 5 (nb de jours habituel sur une semaine), et je ne garde que la partie entière, j'obtiens un nombre de semaine "standard".
    Je copie ma liste de références autant de fois que de semaines "standard" et je numérote de 1 à X(pas de risque de mélange et de regroupement de références identiques sur la même semaine)
    je calcule ma cadence en divisant le nombre total de références X+1 par le nombre de jours disponibles et j'affecte autant de références par jour.

    ce nouveau schéma de calcul vous paraît-il sensé?

    Si oui, je vais pouvoir me repiquer sur le code que j'ai actuellement à partir de "je numérote de 1 à X...(code existant pour un inventaire étalé sur le mois)
    Il me reste à trouver le code pour "je copie ma liste de références autant de fois que de semaines "standard""
    Avez-vous une idée?
    Merci de votre aide
    Fleur59
    Il me semble que vos "semaines standards" risquent d'être plus compliquées pour la gestion que des semaines classiques, d'autre part, d'après ce que j'en comprends, rien de vous garanti que vous n'ayez pas des petites semaines avec 1 ou 2 jours ouvrés en fin de mois.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON


    Quand on a la tête dans le guidon,...

  10. #10
    Membre à l'essai
    Bonjour,
    j'ai fait le calcul sur plusieurs mois;
    en prenant ces semaines "standard" à 5 jours avec un calcul round(), les semaines à 1 ou 2 jours en début ou en fin de mois seront absorbés par la fin et le début des mois précédents et suivants, j'obtiens ainsi un inventaire sur 5 jours glissants. je ne m'occupe plus de savoir si ma semaine réelle compte 2 jours ou 5 jours, je lisse sur la totalité du mois
    Merci
    Fleur59

  11. #11
    Rédacteur/Modérateur

    Dans ce cas il faut bien partir d'une date de référence pour ensuite générer ces semaines successives de 5 jours
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON


    Quand on a la tête dans le guidon,...

  12. #12
    Rédacteur/Modérateur

    Opérateur Modulo
    Bonsoir,

    Sans utilisation de code VBA, vous pouvez réaliser ces roulements en utilisant l'opérateur modulo :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    IdJourSemaine: (DateJour-DateReference) Mod 5+1


    Le sujet est abordé dans ce tutoriel :

    Produit cartésien..

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON


    Quand on a la tête dans le guidon,...

  13. #13
    Membre à l'essai
    Résolu
    Bonjour
    Merci à tous; Comme d'habitude, vous m'avez été d'une grande aide.
    il y a toujours plus d'idées dans plusieurs têtes que dans une!
    Vos petits bouts de codes et vos questions m'ont permis de reformaliser mon idée et de finaliser mon code.
    @ bientôt
    Merci pour votre aide
    Fleur59

  14. #14
    Rédacteur/Modérateur

    Citation Envoyé par Fleur59 Voir le message
    Bonjour
    Merci à tous; Comme d'habitude, vous m'avez été d'une grande aide.
    il y a toujours plus d'idées dans plusieurs têtes que dans une!
    Vos petits bouts de codes et vos questions m'ont permis de reformaliser mon idée et de finaliser mon code.
    @ bientôt
    Merci pour votre aide
    Fleur59
    C'est vrai que tout seul on est pas grand chose, nous aussi on passe notre temps à piocher à droite à gauche des bouts de codes

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON


    Quand on a la tête dans le guidon,...

###raw>template_hook.ano_emploi###