Microsoft 365 Graphique avec jours ouvrés

@Johan

XLDnaute Nouveau
Bonjour à tous

Dans mon tableau servant de base de données, j'ai utilisé la formule "jours ouvrés" pour ne pas avoir les weekends.
Malheureusement, quand j'utilise mon graphique, il m'intègre les Samedis & Dimanches. Par conséquent, mon planning devient faux.

Je vous joins mon fichier pour visualiser ma problématique

Merci de votre aide

Johan
 

Pièces jointes

  • Planning ME.xlsx
    35.3 KB · Affichages: 38

p56

XLDnaute Occasionnel
Bonjour,
Je n'ai pas bien compris le soucis des jours ouvrés, mais avec les dates présentes dans Bdd il est possible de faire ce schéma

Demo_2023-12-06 1736.jpg

Est-ce que c'est le but recherché?
( dans ce fichier test, j'ai du remplacer les formules par des données en dur à cause des liaisons non fonctionnelles sur mon PC)
P.

Edit du 7 dec : amélioration du dessin et correction de détails
 

Pièces jointes

  • Essai_Planning_ME.xlsm
    61.9 KB · Affichages: 1
Dernière édition:

@Johan

XLDnaute Nouveau
Bonjour,
Je n'ai pas bien compris le soucis des jours ouvrés, mais avec les dates présentes dans Bdd il est possible de faire ce schéma

Regarde la pièce jointe 1185566
Est-ce que c'est le but recherché?
( dans ce fichier test, j'ai du remplacer les formules par des données en dur à cause des liaisons non fonctionnelles sur mon PC)
P.

Edit du 7 dec : amélioration du dessin et correction de détails
Bonjour et Merci

En effet c'est exactement le but recherché...Génial !

Questions:
- Est ce que cela prend en compte la notion de "buffer" ?
- Est ce que si j'ai du retard sur un matériel et sur un poste, il se matérialise et décale l'ensemble du matériel pour les autres postes ?
- pourquoi le début et la fin d'un poste commence au milieu de la cellule ?
1701938362984.png


A disposition

Johan
 

p56

XLDnaute Occasionnel
Bonjour,
- Buffer => je ne sais pas ce que c'est, ni ce que ça implique.
- Retard => le dessin se base sur les données de Bdd. Avec vos liaisons, si les données changent le dessin suivra à sa prochaine mise à jour (pour ce faire sélectionner l'onglet Bdd puis revenir sur Planning ou changer de mois)
- début-fin sur le milieu => en fait si 2 histogrammes se suivent sur un même jour, ça permet d'éviter un chevauchement (pour les phases courtes genre "Prog" ça améliore la lisibilité générale)
P.
 

@Johan

XLDnaute Nouveau
Bonjour,
- Buffer => je ne sais pas ce que c'est, ni ce que ça implique.
- Retard => le dessin se base sur les données de Bdd. Avec vos liaisons, si les données changent le dessin suivra à sa prochaine mise à jour (pour ce faire sélectionner l'onglet Bdd puis revenir sur Planning ou changer de mois)
- début-fin sur le milieu => en fait si 2 histogrammes se suivent sur un même jour, ça permet d'éviter un chevauchement (pour les phases courtes genre "Prog" ça améliore la lisibilité générale)
P.
Bonjour

Merci de votre retour et désolé de mon retard, je n'ai pas eu la notification de votre réponse :(

- Buffer = notion de stock. Je n'utilise pas le matériel car mon poste est déjà occupé.
- Retard = Yes c'est bon j'ai vérifié, c'est OK
- Début-fin milieu = D'accord, je comprends mieux. Je pense que je préfère- tout de même que cela commence au début de la cellule. Est-ce possible ?
- Qualité = Le temps "Qualité" n'est pas pris en compte et matérialisé sur la graphique.
Pouvez-vous l'intégrer ?

Merci
Johan
 

@Johan

XLDnaute Nouveau
Bonjour,
Voici une autre version, sans code VBA, et basée sur Power Query (en natif dans ta version)
A partir de la requête PQ, j'en extrais un Tableau Croisé Dynamique (TCD)

Dans l'onglet Param, j'ai inséré 3 tableaux :
- Colonne C, la liste des jours fériés de l'année N et N+1 (juste à changer l'année en A2, puis mettre à jour la requête en appuyant sur "Actualiser tout" du ruban "Données")
- Colonne F, l'ordre des étapes (ne pas modifier l'ordre)
- Colonne I, les jours de fermeture (j'ai cru comprendre que la dernière semaine était fermée...)
- Colonne L, la liste cumulée des Jours fériés et des jours de fermeture (ne rien modifier, la mise à jour s'effectue par "Actualiser tout" cité supra)
Ces données ne sont à modifier que très épisodiquement, donc ne pas oublier!!

Dans l'onglet BDD, j'ai mis toutes les formules concernant les dates en fonction des durées de la tâche (dont retard et Buffer), des W-E, des Jours fériés et des jours de fermeture.

Et dans l'onglet "Gantt_PQ", un pseudo diagramme de Gantt basé sur un TCD issu de la requête principale, calculée sous Power Query.
Les dates sont colorisées selon :
- Les Jours Fériés, en rouge
- Les W-E en jaune pâle
- Les jours de fermeture par un motif
- Et les tâches selon le code couleur que tu avais dans ton graphique
Pour mettre ce Planning à jour, un clic droit dans le TCD, puis "Actualiser" (ou ruban "Données", "Actualiser tout")

Si ça peut t'intéresser
Bonne journée
PS, bonjour Pierre

Bonjour et Merci beaucoup Pierre.

Cela peut être une option envisageable, merci
 

p56

XLDnaute Occasionnel
Bonsoir @Johan, bonsoir @Cousinhub (Bevet Breizh!),

- Ok pour début tout à gauche de la cellule. La fin se situe alors à minuit la veille de la date de fin (est-ce que c'est ce qui est souhaité, sinon il sera simple de modifier pour aller jusqu'à la droite de la cellule de date de fin si c'est préférable)

- "qualité" intégrée ici en 8ème ligne

- pour le buffer : merci pour les explications, mais est-ce qu'il y a une conséquence pour le dessin? et laquelle?

P.
 

Pièces jointes

  • Essai_Planning_ME.zip
    54.7 KB · Affichages: 5

@Johan

XLDnaute Nouveau
Bonsoir @Johan, bonsoir @Cousinhub (Bevet Breizh!),

- Ok pour début tout à gauche de la cellule. La fin se situe alors à minuit la veille de la date de fin (est-ce que c'est ce qui est souhaité, sinon il sera simple de modifier pour aller jusqu'à la droite de la cellule de date de fin si c'est préférable)

- "qualité" intégrée ici en 8ème ligne

- pour le buffer : merci pour les explications, mais est-ce qu'il y a une conséquence pour le dessin? et laquelle?

P.

- ok pour début [...] = exemple de ce que je souhaite:
La ME22-059, le poste adaption a un leadtime de 4 jours. Ma journée de travail est de 7h à 16h.
On commence le 8/12 à 7h du matin, on termine donc le 13/12 à 16h.
Sur l'onglet planning, c'est correct, par contre dans l'onglet BDD, la date du 13/12 est remplacée par la date du 14/12.
- "Qualité" = Merci. Si je souhaite intégrer un nouveau poste (exemple: chaudronnerie) avec la même composition (date de début, leadtime, retard, date de fin, buffer), comment dois-je faire ?
- Pour le buffer = Oui il y a une conséquence sur les dates suivantes, mais après vérification, cela fonctionne
- Est-il possible d'augmenter la hauteur des barres et de décaler le texte à gauche ?
1702365929214.png


- Quelle est l'utilité des colonnes ABC ?
1702365387550.png


- idem pour ces colonnes. Ont-elles un impact sur le tableau ?
1702365433696.png



En tout cas, merci de votre aide, j'aimerais bien avoir votre talent :)
 
Dernière édition:

p56

XLDnaute Occasionnel
Bonjour @Johan et à tous,

Alors précisions :
* le graphique se fait en fonction des données de Bdd, le code du dessin ne modifie en rien ces données.
* la hauteur des histogrammes : il y a plusieurs ME_xx-xxx simultanés par lignes. J'ai arbitrairement fixé cette hauteur à 1 dixième de la hauteur de chaque ligne. Pour augmenter facilement cette hauteur, il suffit donc d'augmenter la hauteur de la ligne ou des lignes comme souhaité.

Pour reprendre l'exemple ME22-059, adaptation 4 jours, début le 8 dec, sur le planning :
* l'histogramme commence bien à gauche de la case du 8 dec,
* et couvre bien 4 jours ouvrés (les 8, 11, 12 et 13)
* texte à gauche

Sinon, pour faire votre planning j'ai recyclé un de mes plannings existants. Ici les colonnes "abc" à droite ne servent à rien (=> gommées). En revanche les colonnes des jours fériés sont utiles pour griser les colonnes des jours fériés-FR (elles étaient mal référencés=> corrigées dans la version du jour)


Pour intégrer un nouveau poste, c'est un peu complexe.
Ici les 8 postes sont définis dans la variable-tableau Hst. Chaque ligne de Hst comporte le n° de colonne du début et de fin, par exemple pour elec : Hst(1, 1) = 4: Hst(1, 2) = 7 soit ligne 1 colonnes D et G
Pour ajouter un poste après les autres, on redimensionne Hst (et aussi la variable tableau TH) et on ajoute les nouveaux n° de colonnes sous la forme Hst(n°ligne, 1) = x: Hst(n°ligne, 2) = y
Pour insérer un poste entre 2 existants : même principe mais en plus il convient de re-référencer l'ensemble des n° de colonnes pour une bonne correspondance. C'est chaud, mais pas de soucis si on est méticuleux.

Version du jour jointe, est-ce que c'est mieux?
P.
 

Pièces jointes

  • Essai_Planning_ME_12dec2023.zip
    55.4 KB · Affichages: 6

@Johan

XLDnaute Nouveau
Bonjour @Johan et à tous,

Alors précisions :
* le graphique se fait en fonction des données de Bdd, le code du dessin ne modifie en rien ces données.
* la hauteur des histogrammes : il y a plusieurs ME_xx-xxx simultanés par lignes. J'ai arbitrairement fixé cette hauteur à 1 dixième de la hauteur de chaque ligne. Pour augmenter facilement cette hauteur, il suffit donc d'augmenter la hauteur de la ligne ou des lignes comme souhaité.

Pour reprendre l'exemple ME22-059, adaptation 4 jours, début le 8 dec, sur le planning :
* l'histogramme commence bien à gauche de la case du 8 dec,
* et couvre bien 4 jours ouvrés (les 8, 11, 12 et 13)
* texte à gauche

Sinon, pour faire votre planning j'ai recyclé un de mes plannings existants. Ici les colonnes "abc" à droite ne servent à rien (=> gommées). En revanche les colonnes des jours fériés sont utiles pour griser les colonnes des jours fériés-FR (elles étaient mal référencés=> corrigées dans la version du jour)


Pour intégrer un nouveau poste, c'est un peu complexe.
Ici les 8 postes sont définis dans la variable-tableau Hst. Chaque ligne de Hst comporte le n° de colonne du début et de fin, par exemple pour elec : Hst(1, 1) = 4: Hst(1, 2) = 7 soit ligne 1 colonnes D et G
Pour ajouter un poste après les autres, on redimensionne Hst (et aussi la variable tableau TH) et on ajoute les nouveaux n° de colonnes sous la forme Hst(n°ligne, 1) = x: Hst(n°ligne, 2) = y
Pour insérer un poste entre 2 existants : même principe mais en plus il convient de re-référencer l'ensemble des n° de colonnes pour une bonne correspondance. C'est chaud, mais pas de soucis si on est méticuleux.

Version du jour jointe, est-ce que c'est mieux?
P.
Super merci pour ces réponses précieuses !!!
Il faut désormais que je le teste en version réelle avec mes données de production pour voir comment il réagit.

Pour l'ajout d'un post, l'explication me semble claire, à voir si l'élève va réussir :)))
 

@Johan

XLDnaute Nouveau
Bonjour à tous, bonjour Pierre

J'ai commencé à "apprivoiser" le fichier et il répond totalement à mes attentes, encore merci :)

J'ai désormais un problème dans le code :
If Not (CDate(Td(i, Hst(j, 2))) < Dt0 Or CDate(Td(i, Hst(j, 1))) > Dt0 + 61) Then

J'ai inséré une fonction Si dans ma BDD pour voir l'impact de ma production suivant le lieu de production.
En ajoutant cette fonction, cela me met un bug dans la macro à l'endroit suivant:
If Not (CDate(Td(i, Hst(j, 2))) < Dt0 Or CDate(Td(i, Hst(j, 1))) > Dt0 + 61) Then

Je n'arrive malheureusement pas à le résoudre.
J'ai mis en rouge les cellules dans laquelle j'ai intégré la fonction SI.

Merci à vous
 

Pièces jointes

  • Essai_Planning V12.xlsm
    358.3 KB · Affichages: 7

p56

XLDnaute Occasionnel
Bonjour Johan,
Dans le fichier du #11, certaines dates ne sont pas présentes, d’où le bug.
Pour prendre en compte le cas de figure de données incomplètes, il suffit de tester au préalable comme ceci :
VB:
        For i = 1 To UBound(Td)
            For j = 1 To UBound(Hst)
                If Not Td(i, Hst(j, 2)) = "" And Not Td(i, Hst(j, 1)) = "" Then    ' <= ajout
                    If Not (CDate(Td(i, Hst(j, 2))) < Dt0 Or CDate(Td(i, Hst(j, 1))) > Dt0 + 61) Then
                        Graphe i, j, CStr(Td(i, 1)), CDate(Td(i, Hst(j, 1))), CDate(Td(i, Hst(j, 2)))
                    End If
                End If    ' <= ajout
            Next j
        Next i
P.
 

@Johan

XLDnaute Nouveau
Bonjour à tous et tous mes voeux en cette nouvelle année

J'ai encore joué avec mon fichier et j'ai intégré un nouvel onglet "Position" qui me permettrait de visualiser la position à l'instant T de mon matériel.
J'ai mis dans cet onglet les critères pour le remplir en mettant également des exemples de ce que j'aimerais obtenir (simple dans ma tête, compliqué à expliquer)

Je vous joins le fichier pour plus de compréhension...

Merci de votre aide
 

Pièces jointes

  • Planning Avancement Jour 05_01.xlsm
    371 KB · Affichages: 2

Discussions similaires

Réponses
14
Affichages
1 K

Statistiques des forums

Discussions
315 095
Messages
2 116 166
Membres
112 675
dernier inscrit
Tazra_IMOU