Combinaison(s) pour atteindre une (ou deux) valeur(s) cible(s) - sous conditions

Messages postés
3
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
28 octobre 2019
- - Dernière réponse : eriiic
Messages postés
23086
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 novembre 2019
- 28 oct. 2019 à 16:18
Bonjour,

Je consulte souvent ce forum grâce auquel j'ai très souvent trouvé une solution. Il s'agit donc de mon premier post. J'ai besoin de conseils car je bloque ...

Je travaille sur un fichier qui évolue fréquemment en fonction de consommations prévisionnelles.
Je pars d'une situation de stock sur lequel je décrémente des consommations et je dois ensuite placer mes achats prévisionnels pour ne pas descendre en dessous d'un seuil minimum. Pour la famille PRE, le Total des entrées en stock doit atteindre 18T ou 20T selon que je commande une certaine matière ou non. (Code 320 : 1ère ligne du print screen, si j'en commande le total doit faire 18T, si je n'en commande pas le total doit faire 20T)
Idéalement, il faut prioriser les achats en fonction des ruptures des mois suivants (ne pas descendre en dessous du stock minimum après consommation).


Les critères à respecter sont les suivants :


Avez-vous un avis sur le sujet ?
J'ai testé l'add-in "Solveur" mais je n'arrive pas à bien m'en servir pour qu'il n'y ait pas d'étape manuelle. Même si passer par une étape de propositions de différentes combinaisons peut avoir un intérêt.
Et je ne suis pas super à l'aise en macro...

Voici mon fichier.
https://www.cjoint.com/c/IJzlfvxrBtb

Merci d'avance, j'ai besoin d'aide !!!

Xan.
Afficher la suite 

3 réponses

Messages postés
23086
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 novembre 2019
5765
0
Merci
Bonjour,

on sent un effort d'explications mais dis toi qu'on ne connait pas ton tableau ni ton besoin.
Donne un exemple complet mais en citant les cellules ou plages.
Dans telle cellule je veux ça parce que j'ai ça ici et ça là.
Quelles sont les cellules fixes, celles à faire varier.
Pour chaque variable les bornes mini et maxi, est-ce par pas entier ou décimal, etc
Enfin tous les détail utiles que tu utilises pour arriver à une solution.

On ne sait même pas si tu raisonnes ligne par ligne, pour toutes les lignes ensemble ou par colonne.
Et d'autre part ton tableau est très fouillis pour nous. Il ne respecte pas les règles d'une BDD correcte ce qui risque d'entrainer des complications difficiles à lever.
eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Commenter la réponse de eriiic
Messages postés
3
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
28 octobre 2019
0
Merci
Bonjour,

Merci pour ton retour Eric.
J'ai éliminé tout ce qui ne concerne pas directement mon problème du fichier.
Voici la v2 : https://www.cjoint.com/c/IJChIc2mxGb

Pour décrypter :
- je pars d'une situtation initiale : [colonne D]
- sur le mois en cours, j'achète [colonne E], et je consomme [colonne F] pour arriver à une situation finale : [colonne G] (cette situtation finale, devient la situation initiale du mois suivant, et ainsi desuite).

Je cherche à mettre à jour les achats prévisionnels [colonnes H, K et N]

La colonne H contient un début de formule qui ne convient pas donc soit on peut la compléter, soit on la remplace par autre chose (je l'ai laissée juste pour expliquer les règles).

Voici les règles :
-Le stock prev [colonne J] ne doit pas descendre en dessous du Stock Mini [Onglet Param, colonne D]
-S'il descend en dessous du Stock Mini, je dois positionner mes achats prévisionnels. Les quantités moyennes achetées se trouvent [Onglet Param, colonne E]
-Si sur le mois en cours 1 seul achat n'est pas suffisant pour remonter au dessus du seuil, je double les quantités achetées

Mon problème se situe ici : Cible à atteindre
-la cible à atteindre sur le mois doit être de 18T, si la commande intègre la matière 320 (Ligne 3)
-sinon 20T
-... et il faut en priorité positionner les catégories entrant en rupture les mois suivants (même si elles ne sont pas en rupture sur le mois en cours)
-la cible à atteindre (18 ou 20T) est un idéal, je peux être en dessous, mais pas au dessus
-(parfois j'imagine qu'il peut y avoir plusieurs réponses possibles pour atteindre la cible)

(Pour continuer d'expliquer le cas pratique, je vois en colonne M quelles seront les ruptures du mois suivant, je vais donc forcément devoir commander mes matières 530 [Ligne 7], 561 [Ligne 9] et 562 [Ligne 10], le mois d'après j'ai 2 nouvelles références 521 et 592, je peux donc les commander en anticipation de la rupture et ajouter une dernière matière pour atteindre ma cible à 20T (au hasard matière 601), j'ai placé un scenario possible en colonne R et donc en résumé tout le problème est là : comment supprimer cette étape manuelle ?)

J'ignore si tous ces critères peuvent tenir dans une formule, si le passage par le complément Solveur peut être une piste (et sans passer par une étape manuelle ?), si une macro s'impose ou s'il peut y avoir une autre solution que je ne vois pas.

Voila, j'espère que c'est plus précis/compréhensible.

Xan.
eriiic
Messages postés
23086
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 novembre 2019
5765 -
Bonjour,

j'ai du mal avec :
-la cible à atteindre sur le mois doit être de 18T, si la commande intègre la matière 320 (Ligne 3)
-sinon 20T

On le trouve où ça ?
Ou bien c'est une histoire de transport à rentabiliser et il faut toujours commander 20T, sauf si c'est matière 320 avec 18T maxi si elle est présente ?
Si oui, c'est vraiment toujours ou il y a des exceptions ? Par exemple avec un besoin de 5T seulement.

Le point de départ sera toujours EFG avec le prévisionnel qui suit, ou bien ça glisse au fil du temps ?
EFG, puisHIJ qui devient le réel, etc
Si c'est glissant les libellés changent pour savoir où on se situe ?

Je n'ai pas encore réfléchis à la résolution. J'essaie juste de bien cerner le pb avant d'essayer.
eric
eriiic
Messages postés
23086
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 novembre 2019
5765 -
PS :
1) dans Param il ne faudrait pas ajouter une colonne Qté mini ?
J'ai du mal à imaginer que tu commandes 0.0000002547 T

2) qu'une Prev01 nécessite plus de 18 ou 20T c'est totalement exclu ou il faut le prévoir ?
Dans ce cas ça passe à 38/40T à commander ?

3) une prev01 nécessite 10T. Avec les 10T de libre on en profite donc pour compléter les matières commandées. Même si on pourrait compléter prev02 totalement en ajoutant des matières ?
Et s'il reste encore de la dispo on ajoute des matières ou on reste à 15T par exemple ?
Commenter la réponse de Xan_Fbn
Messages postés
3
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
28 octobre 2019
0
Merci
Réponse au message 1:

En fait, il s'agit de remplir des containers. Si je commande de la matière 320, je peux rentrer 18T à l'intérieur. Si je n'ai pas de matière 320, cela peut monter jusqu'à 20T.
Je ne l'ai pas intégré pour l'instant dans ma formule car c'est justement l'élément qui coince...

Nous essayons toujours de remplir au maximum les containers, même si nous n'avons pas un besoin immédiat de matière xxx. Le but étant de commander en 1er la prochaine matière qui sera en rupture.

Le "point de départ" évolue tous les mois. Ce qui était Prévisionnel devient Réel, etc. etc.

Je suis en train de construire le fichier, ce que j'ai mis dans le dernier partagé est un extrait (le 1er contenait tout). Il y a d'autres matières pour lesquelles nous avons moins de contraintes. L'objectif est une mise à jour quasi hebdomadaire. La finalité, c'est de simuler ma variation de stock de MP (en Tonnes, et en €) en fonction des besoins de nos clients qui évoluent fréquemment.
En gros, mon projet est de créer une nouvelle version de fichier à chaque modification du besoin client. D'écraser les données prévisionnelles par les données réelles au fur et à mesure sur 12 mois glissants.

Réponse au message 2:

1) dans Param, la colonne E "quantité moyenne achetée" est cette quantité minimum (dans le futur, je voudrais que cela soit une fourchette, mais bon je n'en suis pas encore là)
2) c'est tout à fait exact, si 18T ou 20T ne suffisent pas, on peut doubler. Ou plutôt, on peut avoir 18+18 ou 18+20 ou 20+20
3) oui. l'objectif est toujours d'atteindre 18 ou 20 T (au plus près, on peut être en dessous, mais pas au dessus) pour éviter de faire voyager un container mal rempli.

++
Xan.
eriiic
Messages postés
23086
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 novembre 2019
5765 -
Je ne vois pas d'autre possibilité que de faire ça par macro.
Seulement une macro est très rigide et il est difficile ensuite d'insérer ou déplacer des colonnes ou des lignes sans tout remettre en cause.
Ce qui oblige à travailler sur le 1er fichier qui n'est pas très simple. Il ne s'y prête pas beaucoup et risque de générer moultes questions.
Il faut donc que tu finalises au plus vite et au plus près du besoin final ce fichier. En gardant en tête que toute modification de structure sera pour ainsi dire impossible ensuite.
Des ajouts de lignes de matières le restera.

Sans m'engager à quoi que ce soit car c'est un sac de noeud et ça risque de demander beaucoup de temps disponible j'ai quand même qq questions sur celui-ci.
Tu as filtré 14 matières /80.
Il ne faut considérer que les xxxPRE ou toutes ?
Ou certaines et pas d'autres sans règles logique ? Auquel cas il faudrait ajouter une colonne où un x dirait celles à prendre en compte.

Problème plus gênant, les prévisions sont régulières avec 5 colonnes chacune.
Sur G:W on a un paquet de colonnes qui ne suivent pas cette logique. On peut supposer qu'elles sont fixes et indépendantes. Seulement je retrouve dedans 'Stock au 31/12/2018'
C'est un fichier annuel et le 31/12/aaaa est immuable où ça peut être d'autres dates et il faut prendre en compte des données dans ce coin ?

Quel est le stock de départ à prendre en compte ? en S ? en U ? en V ?
J'ai l'impression que c'est U ce qui m'arrange.
U est 3 colonnes à gauche de Achat Prev 10. Et Achat Prev 11 s'appuiera sur Stock 10 3 colonnes à sa gauche aussi.
Si j'ai bon, garde cet écart.

Famille identifie à elle toute seule une matière de façon unique ou il faut la coupler avec Catégorie ?

En Z, AE etc tu as des formules. Tu tiens à les garder si tu fais des arbitrages manuellement ou on peux mettre juste le résultat calculé ?

Je ne te cache pas que je ne suis pas sûr de trouver le temps...
Au moins ça aura affiné le pb si qq'un d'autre se penche également dessus
Commenter la réponse de Xan_Fbn