Planning de livraisons

Hello Bart, super ce que tu as fais, je l'ai mis en test et il faudrait encore peaufiner s'il te plait

Dans la cellule C2 et S16, il faut que ça se rapproche de la cellule C16, (volume réel) pour optimiser le nombre de tours

En terme de nombre de tours par camion, il y a des priorités transporteurs ainsi que le nombre de tour par camion, 3 le matin et 2 l'après-midi

Les chargement de l'après midi démarre à 12h30, il faudrait que la colonne des deuxièmes tour démarre à cette heure la svp

Priorité 1: 361/379/277/609

Priorité 2: 225/919/715/392

Priorité 3: 857

Priorité 4: 829

Si je n'ai pas assez de volume pour utiliser tout les camions, il faut que ca passe par les priorités transporteur svp

Salutation,

Patrick

3test-v3.xlsb (56.08 Ko)

hello j'ai avancé sur mon fichier mais la je seche. je vous redonne le sujet.

J’ai un fichier vba avec macro que je veux faire évoluer. Le principe, j'ai un onglet donné et un autre planning. Dans l'onglet donné, tous les jours j'intègre un fichier qui contient le volume palette par client pour faire le calcul des besoins en camion. J’ai un nombre de camion avec des capacité de chargement différents. En haut du tableau les camions (camion) colonne suivante leurs capacités (cap) ensuite (tours). Chaque camion en fonction du nombre de palette doit faire 5 tours en respectant l’ordre des camions prioritaires. 1/2/3/4/5.

La cellule U15 l’attendue global livraison

Cellule U16 le calcul de la simulation de chargement et là il y a un problème en l’état actuel la simulation m’annonce 722 pour 480.

En D1 le cumul du nombre tours et D2 le nombre de tour a effectuer.

Bouton optimiser le planning on clic dessus et nous donne l’information nombre de palette charge, non chargé et le taux de service.

Mon premier problème, résoudre les rotations de 2h00 par tours ou le saut de une colonne. Exemple: colonne M il manque le camion 919 et j’ai deux fois le 277. Le 361 et 379 ne devrait pas être dans la colonne M mais N.

Ci joint le fichier

Merci a ceux qui vont s'interreser

5test-v12.xlsb (63.09 Ko)

re,

je ne comprenais pas la macro qui était là, donc je l'ai refait de manière que c'est très visuel. C'est pourquoi, on a maintenant une feuille "LogBook" pour mieux comprende les choses. Concernant les priorités, c'est assez difficile à programmer, donc pour tout simplifier, on amaintenant ce tableau "Tabel6" dans lequel, vous pouvez heure par heure mettre vos priorités pour les magasins et les camions. Je suppose par exemple qu'à 4h30 se seront seulement les magasins et les camions de priorité "1". Peut-être un jour, avec une volume minimale, on choisit "1" pour toutes les heures des camions. A partir de 11h30, votre après-midi commence, alors ce seront les priorité des magasins >5, etc. Donc je pense que comme çà, je vous donne un outil pratique pour manipuler les choses sans modifs dans VBA. Vous pouvez retarder vos camions de priorité 2 si cela vous donne une avantage ... .

Je me rappèle plus, mais la colonne "camion" des magasins, c'est parce qu'on a une limite pour certains camions, par exemple un camion de max 12 (ton/m3?). C'est çà ? La colonne "volume" est maintenant avec une formule "VRecherche" pour minimaliser des risques.

La feuille "LogBook"

  • à gauche, on a un tableau avec tous les decisions pris par heure et camion disponible (donc s'il est en route l'heure précédent, il est ignoré).
  • le tableau avec ces priorités (cfr. supra)
  • la plage AA:AZ, par heure de gauche à droite les camions disponibles, une liste de magasins à faire (max. 10 magasins) et puis les assignements des 2. Donc par exemple à 8h30, on a 4 camions et 5 magasins et seulement un camion assigné parce que les autres sont trop grands (>12 ton). La même chose, dès qu'un camion atteint 5 tours en colonne AV, l'heure suivante, il est ignoré.

je ne le sais pas, mais peut-être, on devra assigner les petites commandes (<=12 tons) avant le reste autrement elles se trouvent au bout du queue et risquent d'être ignorées. C'est pourquoi, j'ai introduit les "PP" (priorité aux petits), 1 camion par heure. Je ne sais pas si vous aimez l'idée.

3test-v12.xlsb (103.89 Ko)

et comme la méthode contient des valeurs aléatoires, le résultat n'est pas toujours le même. La macro "M_Optimaliser" prend la meilleur solution de 25 (minimum de tours + camions en repos + dernière colonne)

une nouvelle version et maintenant le nombre de tours par camion est aussi variable (colonne supplémentaire dan tabel1)

0test-v12-v2.xlsb (108.91 Ko)

Bonjour Bart et merci de te pencher sur mon problème.

Séquence de livraison

Dans un premier temps, tout les magasins en fonction des camions disponibles doivent avoir une livraison en premier tours ils partes full. l'es magasins ne sont pas livrer toute le heures mais 02h00

42/43/45 eux c'est a partir de 15h30 donc non concerné par contre même logique faire avec les camions disponibles et si deuxième tour faire de l'optimisation dans l'ordre 42/43/45 géographiquement le 42 est en premier et 45 en dernier

Les petit volume tel que le 300/301/302/303/212/213/214/215/217 eux n'ont jamais de gros volume donc ils seront chargé en complément dans d'autre camion qui iront dans le même secteur, peut importe l'heure d'où la colonne secteur pour faire du groupage donc de l'optimisation de remplissage camion résultat gain de tour

ce que je vois dans la configuration actuelle

04h30 c'est bon sauf que un camion de 23 pal est mis a dispo alors que l'on aurait pu mettre un de 17 pal.

05h30 ok mais le 715 doit rouler il n'y est pas il aurait pu faire le magasin 721

06h30 du coup je devrais avoir les magasins 20/46/50/216 car ils n'ont pas de premier tour mais deux seulement seront servis car les autres camions sont en court de livraison donc les deux derniers magasin seront à 07h30

07h30 les deux dernier et on repars dans la chronologie des priorités livraisons pour le deuxième tour.

Apres les deuxièmes tours si un camion n'est pas complet mais il va dans un secteur ou il y a des volumes d'un autre magasin qui se trouvent dans le même on complète. donc exemple sur le magasin 11. en fonction du volume a livré obligatoirement il y a trois tours. donc le dernier tour il va le compléter avec le 219et le 303 et la on est dans une vrais logique de taux de remplissage. ça donne en parlant de cellule dans le cas actuelle J19/37/41.

Ma demande particulière, L'optimisation camion je ne trouve pas la solution dans le codage. Dans une logique normale un volume de palette doit être livré mais tout les camions non pas la même capacité de chargement. hypothèse pourquoi ne pas utiliser plutôt les informations D2 à D14 comme ca c'est figé et on ne tient pas compte de la colonne D de 18 à 50 en supprimant cette information qui me semble être la cause du problème. j'ai filtre le secteur un pour que tu ais une meilleur vision du sujet.

Bravo pour le remplissage des volumes par magasins dans la colonne E

image

une nouvelle version à partir de crash et encore à peaufiner.

Les données de "Données" sont copié&collé dans le tableau "tabel4", les "zéros" sont éliminés et on le trie pour les priorités et les volumes. Comme-ca, c'est plus visuel. Puis les magasins et camions sont pris dans leurs ordres et un camion essaie à combiner avec plusieurs magasins du même secteur, si possible. Ce sont ces cellules vertes dans le planning des camions. J'ajoute chaque fois entre parenthèses le poids. Pour le moment, je dois encore ajouter des conditions pour retarder un peu les magasins pour leur "priorité". Mais je ne comprends pas bien cela. Vous voulez quelles priorités à partir de quelle heure (par exemple les >=5 à partir de 11h30 ?).

C'est normal pour cette raison, que je n'ai pas de heures de repos (un camion qui n'a pas un boulot après 2 heures).

En F1:H3, j'essaie à faire un estimat en coûts. On a les heures des camions (=2 fois le nombre de tours) et les heures de repos (chaque fois une heure) et je suppose que le coût d'une heure en repos est la moitié d'une heure de camion. Si le problème est impossible dans une journée avec ces camions, j'ajoute une pénalité de 1.000 heures pour visualiser cela.

Que pensez-vous ? C'est déjà dans le bon sens ?

2test-v12-v3-2.xlsb (89.49 Ko)

Et si on regarde bien, les 2 tours de 609, si on les ajoute à un tour 2 heures plus tôt, on peut les supprimer. (Mais pour programmer cela ...???)

Bonjour Bart, super le boulot que tu as fait, visuellement c'est top avec les infos dans les cellules camion + palettes chargées. petit souci, a part les magasins 41 et 44 il ne doit pas avoir d'autre camions affecté a cette heure. il faut juste décaler le 361 et 379 a 05h30 et ceux qui sont a 05h30 passe a 06h30 ect... ensuite, les magasins 42/43et 45 doivent impérativement démarrer a 15h30. on touche bientôt au but. pour info il n'y a pas de pause car il y a deux équipes. après répartition je lis rendement 78% / pal attendue 480 et pal avec la répartition actuelle 613. cela signifie que les groupages ne sont pas suffisamment optimisé. j'ai fait une simulation à la main et ça me donne ca. soit 28 tours. regarde si ca peux t'inspirer.

image

j'ai 30 tours au lieu de 28 et 589 positions dans les camion (81.5%). Mais je ne sais pas comment vous l'avez fait Vous pouvez me partager votre ficher (un image ne dit pas grand chose). Je suppose que le 379 a fait ces 5 tours, donc il ne peut plus partager à tours >=15h30 et là, j'avais besoin de ses 23 palettes, ... .

Peut-être vous avez plusieurs magasins dans le même camion, chez moi, pour le moment max 2. Le tableau "tabel8" vous montre par exemple que les prio's 2-6 commencent à 05h30 et les 7-10 à 15h30. Pour les camions, c'est seulement 1 qui est à 04h30.

2test-v12-v3-1.xlsb (90.88 Ko)

encore bravo pour ton visuel c'est assez lisible et compréhensible. Je te joint le fichier Excel de ma logique, j'ai préféré sacrifié un tour en groupage c'est a dire que le camion disponible était un 20 pal et il est parti avec 4 palettes d'où mon approche de résultat en nombre de départ effectué favorable. en nombre de tour si on intègre plusieurs client dans le même camion et même secteur, on est au dessus de 28, mais l'idée c'est maximiser le plus possible les allées venue des camions. regarde dans le fichier je t'ai fait un éclaté des groupages qui me semblaient logique. regarde si ça peut t'aider mais ton résultat est plutôt pas mal du tout.

2modele.xlsx (18.82 Ko)

re,

il y a quelque part un fantôme dans ma code, pfff. Bon, maintenant, j'ai ajouté cette condition 3+3 tours AM&PM. Je reste à 30 tours et 595 palettes (80.7%). Je ne sais pas encore réduire cela. Vous avez fait votre planning manuellement en combien de minutes ? Et si vous regardez à ma solution, vous la corrigez/améliorez comment ? Ces tours avec 3 palettes ?

Il y a un bouton "trier" à la cellule A17 qui change le tri du talbeau entre "Secteur" et "Priorité". C'est plus facile de déduire des choses.

3test-v12-v3-3.xlsb (102.15 Ko)

Salut Bart, le fichier Excel pour ajuster au mieux les rotations et optimisation, environ 01h00 et je me suis gratté la tête.

Actuellement dans la macro qui n'est pas respecté... peut etre que j'ai oublié de le dire Il y a un impératif avec le camion 609, jamais il démarre à 04h30. il doit faire exclusivement le magasin 220 toute les deux heures a partir de 05h30 et ensuite il peut aller ailleurs en faisant attention de l'optimisé du mieux que possible et dans les mêmes secteurs, c'est valable aussi pour les autres concernant les secteurs, ce que tu as déjà fait. Autre souci, un même magasin ne peux pas avoir deux livraisons à la suite. exemple 05h30 et 06h30 il faudra deux heures entre chaque passage donc 07h30.

Amélioration de la macro en fonction de ce que je vois: Le magasin 41 et 44 n'ont que 10 palettes chacun mais pas dans le même secteur, il faut favorisé les camions qui on le moins de volumes un (15 ou 16 palettes). ensuite les premiers tours il faut priorisé les camions en priorité 1, ce sont les miens. les camions en priorité 2 c'est si seulement nous en avons besoin, par exemple il est plus rentable que mes camions fasse 6 tours au total et que mon prestataire 2 ne prend que ce qui reste ainsi que le 3 , 4 et 5

Alors ou je peux trouver la solution dans la répartition actuelle. j'arrive a 33 tours tout confondue et en départ entrepôt je suis à 27.

je te joint ce que j'ai fais avec le ficher que tu as envoyé. le bouton optimisation fonctionne ou pas? je l'ai trouvé hyper long du coup j'ai fait echap et debug qui s'affiche ,vois si ça t'inspire, je suis preneur. tu dois avoir la tête en feu avec mon sujet merci encore

le bouton "opti" fait 50 simulations d'environ 2 sec, donc la macro dure 100 sec (2.5 minutes) surmon ordinateur

ok, il fonctionnel'optimum

une solution ridicule ou inventive pour le secteur 2, j'envoie ce camion 609 avec ces 12 palettes

  • à 05h30, à 07h30 et à 09h30 vers 10+200 avec 20+3. Comme ça, le 10 a eu ces 60 et le 220 m'a vu toutes les 2 heures.
  • je le mets en pause jusqu'à 12h30 parce qu'il a eu ces 3 tours avant midi
  • à 12h30 vers 302+220 avec 2+7, comme ca, eux ont tout eu
  • le 19, je l'envoie avec un autre camion ou autrement solution ridicule, à 14h30 je l'envoie vers 19+220 avec 23+0

Donc avec 5 tours du 609 vers le secteur 2, le 220 l'a vu toutes les 2 heures. Ridicule ???

oubien ces 2 derniers tours

  • à 12h30 vers 302+220+19 avec 2+3+7
  • à 14h30 vers 220+19 avec 3+8 et à 16h30 avec 1+1
image

un essai en ridiculisant votre secteur 2 et une infractions pour le 609 à 11h30. C'est juste pour montrer cela, je vois qu'on a pris d'autres decisions discutables.

2test-v12-v3-3.xlsb (103.90 Ko)

PS. je n'ai pas encore lu votre dernier manuel

re,

voici votre solution, il y avait un problème avec le 609 à 7h30 avec le magasin 11, mauvais secteur, alors ça doit être un autre camion. Et j'ai ajouté 2 camions à 12h30 pour complèter la chose (mais ils ont maintenant 4 tours avant midi, petite faute). Comme ca, c'est dans le même format. Et 29 tours, chic.

Ce qui me surprend, la colonne "Camion" pour les magasins, cela ne sert à rien, par exemple magasin 11à 15 comme valeur pour les camions et vous y envoyez 2 camions de 23 palettes ???

4test-v12-v3-3.xlsb (104.05 Ko)

Bonjour Bart, je te fais une réponse sur ton dernier message, on y est presque.

Pour le temps mort de 10h30 et 11h30, ne pas faire, mieux vaut comblé le 10h30, et envoyer le prestataire 392 et 715 comme ca, la plage horaire est occupé.

Pour le magasin 42 mieux vaut privilégier un de mes camions (609 12) et le 379 par avec la dernière palette du 42.

En réponse a la colonne camion, oui je suis surpris que pour le magasin 11, le type de camion est 15, j'ai mis a 23.J'ai testé et mis à 0 et ensuite 23 sur toutes les lignes dans l'onglet données et le système fonctionne , par contre j'ai essayer en supprimant la colonne et la il ne reconnait pas les magasins.

Autre chose, j'ai intégrer un autre fichier dans données et il y a une information que je n'avais pas avant,(quand il n'y a pas de palettes a livrer au magasin, j'ai un message (magasin 41 inconnu)).

Même problème avec les données précédentes la plage de 10h30 à 11h30 est vide donc il faut absolument que les plages horaires soit utilisé.

J'ai intégrer deux lignes supplémentaires ce sont des transferts inter entrepôt et la on peu faire passer un camion qui va dans le secteur. as tu une solution? exemple: le 379 qui est dans le secteur 1 a 05h30 peut être a 06h30 pour le ramassage et continuer a 07h30 normalement. Ce ne sont que ses exceptions pour le 100 et 101 (code entrepôt).

Dernier point, souci de dispatch 599 pal a livrer et le calcul avec les camions exploité monte a 849 aie aie aie...

Je te joint le fichier regarde ce que tu peux faire s'il te plait

2test-v12-v3-3.xlsb (103.78 Ko)
image
Rechercher des sujets similaires à "planning livraisons"