Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Mes magasins ne dépassent pas 4-5 palettes et en moyenne font 2.
Ils sont livrés vers trois intermédiaires qui sont places l'un à côté de l'autre.
Je vous ai juste proposé une ouverture possible (je sais que les passionnés sont ravis des trucs comme cela).
Vos propositions sont très intéressantes aussi. Bien sûr, si vous trouverez des autres solutions, je serai très reconnaissant.
Mais j'ai quand même une petite question pour vous. Est-il possible de m'expliquer comment vous avez défini la plage utile?
J'ai cherché au moins une heure et je n'ai rien trouvé. Peut-être c'est au delà de mes compréhensions 🙂
Le principe :
En fait, où que l'on soit en colonne D, on doit vérifier si le chargement marqué dans la colonne B, dans la ligne suivante, peut rentrer ou non dans le camion en cours.
Exemple : Considérons par exemple la formule en D9. La plage utile à sommer va de B8 à B10 (B8, début du camion en cours, juste en dessous de la ligne 7 où se trouve la dernière cellule non vide de la colonne D, correspondant au dernier chargement du dernier camion, au dessus de la ligne 9, et B10, chargement suivant, juste en dessous de la ligne 9).
La formule simplifiée qui permet de déterminer la plage utile en D9 est :
EQUIV(9^9;Feuil2!D$1: D8;1)) recherche le nombre 9^9 dans la plage D$1: D8, ne le trouve pas, et donne donc le numéro de la dernière ligne contenant un nombre, en colonne D, au dessus de la ligne 9, ici 7.
=DECALER($B$2;EQUIV(9^9;D$1: D8;1)) créerait donc un décalage de 7 lignes et donnerait $B$9 (9 = 2 + 7).Pour obtenir $B$8, on utilise =DECALER($B$2;EQUIV(9^9;D$1: D8;1)-1
Ici, on n'a pas besoin de créer de décalage de colonne. On a donc
=DECALER($B$2;EQUIV(9^9;D$1: D8;1)-1;;
Reste plus qu'à déterminer la hauteur de la plage utile à sommer, ce qui est fait ici avec LIGNE()+1-EQUIV(9^9;D$1: D8;1)) :
LIGNE() renvoit le numéro de la ligne en cours (9 dans l'exemple), +1, pour prendre aussi la ligne suivante (puisqu'on veut savoir si le chargement suivant rentre dans le camion en cours), - EQUIV(9^9;D$1: D8;1) parcequ'on ne veut que les lignes après le camion précédent. Ce qui donne dans notre exemple 9+1-7=3.
La formule renvoie donc B8, B9 et B10. C'est bien ce qu'on voulait.
En D10, la formule renvoie la plage B8, B9, B10 et B11.
Malheureusement, la formule EQUIV(9^9;D$1: ne fonctionne bien qu'à partir de D6, car D2, D3 et D4 sont vides, et D5 = 1. De D2 à D5 elle renvoie #NA car il ni a pas de nombre dans les cellules au dessus, en colonne D. Pour résoudre cela, on introduit dans la formule un test SI(ESTNA(EQUIV(9^9;D$1: D8;1);1 qui renvoie 1 à la place de ce #NA.
Une autre possibilité en pièce jointe, en tirant au hasard les magasins dans lesquels le camion doit passer... Pour faire un autre essai, il suffit d'appuyer sur F9, ou d'écrire une valeur n'importe où dans la feuille (sauf dans les tableaux bien sûr 😱).
J'ai copié-collé plusieurs fois le tableau résultat, ainsi on peut espérer trouver un optimum (valeur en C22). Il ne reste plus qu'à chercher le tableau correspondant à cette valeur. En pratique, il faudrait mieux faire une petite macro relançant un certain nombre de fois ces calculs, et gardant à l'affichage le tableau correspondant au nombre minimal de camions.
Bien sûr, cela ne sert que dans certains cas, en simplifiant, lorsque le nombre total de palettes est proche d'un multiple de 30. Dans l'exemple en pièce jointe, on voit que l'on peut caser, si on s'y prend bien, les 52 palettes, dans deux camions, et dans le cas contraire, dans 3 camions, dont un presque vide.
Petite question au passage : Dans la réalité, tu as combien de magasins à "visiter" ?
Merci pour cette solution! Je ne demande pas comment elle fonctionne, vu que même l'histoire avec DECLARATION je n'ai compris guère.
Il est vrai, qu'ici on optimise au maximum le remplissage des camions. Mais... uniquement s'ils ne bougent pas. En effet, c'est ma situation qui est assez floue, pour qu'on puisse trouver une solution optimale. Je réponds donc à votre question au plus juste possible.
Cette situation est uniquement une partie d'un affrètement, une partie bien spécifique. Ce sont une vingtaine de magasins qui sont préparés sur un entrepôt type cross-dock est sont livrés chez les prestataires, pour être dispatché ensuite chez les vrais destinataires. La spécificité (voir défaillance) de préparation exige donc de prévoir plus de place dans les camions que le nombre de palettes programmé. Je l'ai définit alors avec le principe qu'on a vu avant. Juste une parenthèse: s'il y a un magasin, peut être le nombre plus précis de palettes autorisées est de 30 et non 29,5? cela serait plus logique. Et la formule est donc de x=30,5-0,5n.
Ce groupe de vingt magasin avec des problèmes est destiné alors vers trois transitaires. Par exemple, dans le tableau A,B,C,D,E pour le transitaire 1 etc. Plus précisément 7 - 7 - 6. En réalité, on peut charger plusieurs groupes des ces magasins dans le même camion, mais il est déconseillé de les mélanger, malgré leur localisation très proche.
Cependant, on peut ajouter un autre magasin, proche géographiquement, dans un camion pas assez rempli. Le but est de savoir qu'est-ce qui est plus rentable:
- placer deux transitaires dans le même camion (trois - ne tient jamais)
- un transitaire par camion avec un ajout d'un autre magasin
Mais, bon, j'ai bien peur que pour pouvoir rentrer dans le deuxième scénario, il faut refaire tout l'affrètement. plus raisonnable alors, de rester avec trois groupes de prestataires, pouvoir compter le nombre de places nécessaire en fonction du nombre de palettes.
Pratiquement, est-ce que tu as l'impression que l'on peut encore améliorer mes précédentes propositions... ? Si tu as l'impression que oui, pourrais tu mettre queqlues exemples montrant ce que tu obtiens avec mes précédentes propositions, et ce que tu aimerais avoir.
Je comprend bien tes explications, mais, ne connaissant pas exactement tes contraintes, je ne veux pas m'avancer davantage dans une direction... et constater après coup que ce n'est pas adapté à ton besoin.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD