[RECH] Optimisation d'un tableau excel à l'aide du solveur.

Résolu/Fermé
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 - 18 août 2020 à 20:21
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 - 29 sept. 2020 à 23:42
Bonjour à tous,

Je suis confronté à un problème quant à l'utilisation du solveur (je me suis renseigné et je pense que c'est le bon outil à utiliser car je ne m'y connais vraiment pas en VBA).

J'ai vu une vidéo tuto très bien ici : https://www.youtube.com/watch?v=6HidDATdDaU - Qui m'as bien fait comprendre le principe « de base ».

Néanmoins, et vous devez vous en doutez en postant un message ici, mon problème n'est pas identique (en termes de variables) et j'espère que vous pourrez m'éclairer sur sa solution !

Alors voilà,
J’ai deux ateliers différents nommés : Atelier 1 et Atelier 3 (oui des fois il n’y a pas de numéro 2, soit…).
Dans ces deux ateliers sont fabriqués, chaque semaine des pièces de matières différentes :
- Matière 1
- Matière 2
- Matière 3
- Matière 4
- Matière 5
- Matière 6
Lorsque que la case de production est vide, cela veut dire que nous n’avons pas de pièce fabriquée cette semaine et donc pas de convoyage.
Chaque référence de pièces possède un type de matière et un poids unique (cf. fichier Excel - ex : Référence 1 : 20 Kg en matière 1 ; Référence 2 : 35 Kg en matière 1, Référence 3 : 47,5 Kg en matière 2, etc…).
Et pour corser le tout, le convoyage des pièces, en fonction de l’atelier 1 ou 3, se fait à l’aide de conteneur ayant un poids différent :
- Conteneur 1 : 180 Kg et Conteneur 2 : 250 Kg en capacité Maximum pour l’atelier 1
- Conteneur 1 : 250 Kg et Conteneur 2 : 450 Kg en capacité Maximum pour l’atelier 3
Nous disposons de 5 conteneurs par jour pour l’atelier 1 et de 7 conteneurs par jour pour l’atelier 3.
Ma question est la suivante :
• Comment faire pour « optimiser », par atelier et par matière, le convoyage des pièces dans les différents conteneurs ? C’est-à-dire, comment réussir à combler, dans la limite du possible, la capacité des différents conteneurs avec le plus de références possibles ?
Ex : Réf 1,2,3 : 15, 150 et 10 Kg de matière 1 --> Ok 175 Kg pour le conteneur 1 sur 180 Kg Maxi.

Je pense qu’avec l’outil Solveur ce serait possible d’obtenir une optimisation d’un lot de références (de la même matière) dans un conteneur de taille variable défini par la somme totale du poids desdites références obtenu après résolution de l’équation du solveur.
Ex : si on obtient 4 références pour 170 Kg --> Ok conteneur 180 Kg mais si l’on obtient 7 références pour 244,7 Kg --> Il faudra un conteneur de 250 Kg for sure !

Il y a des références « spéciales » : ici j’ai en tête PS-22007001 qui pèse 550 Kg et est convoyé avec son propre conteneur de 650 Kg.

Est-ce que la méthode change si certaines références, qui reviennent souvent, sont prioritaires par rapport à d’autres ? Au cela aura juste un impact au niveau des contraintes du solveur ?

Une fois les différentes combinaisons obtenues, elles seront « redirigées » via rechercheV ou Equiv dans un onglet « planning » pour détailler comment s’organise les conteneurs au jour sur la semaine pour être envoyé plein en fin de journée. (Ex combinaison 1 rempli le lundi pour être envoyé le et combinaison 2 pour envoyer le mardi soir)

Merci par avance pour votre temps de lecture pour ce problème et de votre future réponse,

Cordialement,
Paradjanov


Fichier dispo au lien suivant : https://www.cjoint.com/c/JHssvtDG007

80 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
23 août 2020 à 20:09
1) On a le fichier de base contenant les données prod de la semaine.

jusque là tout va bien

2) On créer et utilise le premier module "module d'extraction des données" pour extraire les données dans notre fichier cible

C'est quoi cette notion de fichier cible?

Il y a 2 choses différentes : la création du module (1 fois) et son utilisation (plusieurs fois)

L'objectif de ce module 1 est effectivement d'extraire les données qui seront utiles au module 2 (optimisation) mais également de les enrichir des classes de températures et de les mettre en forme (je parle des colonnes) :
|Référence pièce	|Type	|Nb MAX	|Atelier	|Matière	|Température	|Classe température	|Production semaine 1	|Production semaine 2	|Production semaine 3	|Production semaine 4	|Poids (Kg)|

Le tri des données dans l'ordre Atelier\Classe\Matière\Type doit être réalisé.
Le tout sera copié/collé en A2 de la feuille Optimisation classe matière du classeur en charge de l'optimisation.
Fin du module 1.

3) Ces données extraites sont ensuite assujetti au deuxième module "module d'optimisation" qui correspond à la démarche pour filtrer ces données d'une certaine manière, de sorte à ce qu'elles soient utilisables par l'opensolveur et le modèle BPP

Bin non.
Une babiole d'abord : plutôt que de parler de données extraites (ça fait référence au fichier de base) je préfère parler des données collées dans le classeur d'optimisation.
Le module d'optimisation ne filtre rien du tout.
Les données sont directement exploitables par le module (d'où l'importance du bon travail du module précédent.
L'optimisation s'appuie sur l'algorithme BPP et est résolu via OpenSolver et fournit en sortie un tableau Excel Références x Convois pour la semaine choisie et pour l'atelier 1
Fin du module 2

4) Une fois les données converties au format voulu, on utilise opensolveur + BPP pour assurer le remplissage optimisé des conteneurs

C'est déjà dans le module 2 (optimisation) au point 3

5) Une fois le remplissage optimisé des conteneurs détaillé dans le format du solveur, on extrait ce format pour le renvoyer à l'autre feuille cible qui possède le format standard de planning de production.

Re non. tu n'utilises pas les bons mots.
Le remplissage n'est pas détaillé dans le format du solveur.
Le module 3 (réintégration) prend en entrée le tableau de sortie du module précédent et fait en sorte d'en rapatrier les données dans le fichier de base aux endroits kivonbien.
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
23 août 2020 à 20:39
Re,

D'accord merci ! J'avais une vague idée globale mais maintenant c'est entièrement clair ! :)
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
24 août 2020 à 06:10
Bonjour,

Atelier 3 fonctionne.

Les conteneurs spéciaux (masse >450kg) sont gérés
Les types 1 sont gérés, qu'ils aient ou non de n_MAX

En revanche, le nombre de conteneurs explose : jusqu'à 48 pour semaine 1.

Le programme fonctionne aussi bien pour atelier 1 que atelier 3.
Il fonctionne pour les semaines 1 à 4.
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
24 août 2020 à 06:28
Bonjour,

D'accord merci je regarderai ça en arrivant au boulot.

Oui logique que ça explose mais tant que cela marche et qu'on peut confirmer ou non la possibilité d'assurer la prod hebdomadaire : that's all folks!

Je vous redirais pour la suite.. :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
Modifié le 24 août 2020 à 11:35
Bonjour,


Je suis en train de configurer le procédé de l'outil comprenant les différents modules et j'ai plusieurs questions :

1) Pour l'étape où je dois extraire les données du planning de production initial, j'ai en réalité plusieurs noms qui correspondent à l'atelier 1. (ici I1 I2 et I4).

Je les aient modifiés à la main en utilisant l'outil "rechercher puis remplacer par" en mettant une première fois les "I2" à remplacer par "I1". idem pour les I4. Ainsi on obtient une seule et même valeur qui correspond à l'atelier/chantier en question.

Ma question est la suivante : Doit-on procéder ainsi pour la suite ou est-ce possible de référencer ces 3 noms pour l'atelier 1 ? Correspondant à dire I1 = (I1 + I2 + I4).
Idem pour atelier 3 (I3 --> I3A + I3I).

2) Pour passer du planning de production initiale complet à deux planning de production (avec les données techniques en +), j'ai pensé à faire un tri puis copier/coller le premier planning (correspondant au planning atelier 1) sur la même feuille. Puis modifier les filtres pour le planning 3 et copier/coller.

Or quand je filtre, cela filtre tous les tableaux de la feuille donc le tableau du planning de l'atelier 1 se retrouve avec des références de l'atelier 3 et inversement.

Dois-je faire une feuille en plus par atelier pour que le copier/coller ne soit pas impacté ?
Ou tout simplement faire la démarche "à la main" (par macro par la suite une fois validée) comme ceci :
I) On Copie/colle le contenu filtré dans l'onglet d'optimisation pour le planning de l'atelier 1
II) Je reviens dans la feuille PDP pour filtrer puis copier/coller le contenu du planning de l'atelier 3 dans l'onglet optimisation

Car une fois les données copiées, elles ne sont plus liées au tableau initial et ainsi plus de problème de filtres.

3) Pour l'onglet optimisation, j'aimerai mettre les deux plannings l'un en dessous l'autre pour éviter de devoir faire une feuille par planning.
Est-ce possible ? Ou doit-on faire une feuille par planning également ?

4) Peut-on prendre en compte le nom propre de chaque matière directement ou dois-je remodifier (idem une étape de rechercher et remplacer à faire avant de lancer l'outil) avant de copier/coller le contenu dans l'onglet du module d'optimisation ?


Ps : j'ai essayé de reprendre tes formules dans le module d'optimisation (SIERREUR et autres) car l'ordre des colonnes à un petit peu changé, mais il doit y avoir encore une petite erreur car j'ai un "?Noms" qui apparaît (où alors du au fait que la matière 1,2,3,4, et 6 sont laissé au format initial).


Lien du fichier modifié : https://www.cjoint.com/c/JHyjvRWKtTx

Synthèse des différents onglets et qui sera présent comment :

Onglet 1 "0-PDP Amont" = Format du planning de production de base réalisé par le service supply-chain

Onglet 2 "1a-PDP Amont maj" = Planning de production, après un copié/collé, contenant les informations techniques requises au bon fonctionnement du module d'optimisation. De la je pense faire le tri puis copier/coller le planning final pour l'atelier 1 dans l'onglet d'optimisation

Onglet 3 "1b-PDP Amont_ok" = Idem onglet 2 pour l'atelier 3 dans le cas où on doit faire une feuille par atelier (pour les problèmes de filtres).

Onglet 4 "2-Optimisation chantiers" = feuille du module d'optimisation. Qui assurera l'optimisation du remplissage des conteneurs pour les ateliers 1 et 3.
Je pense, comme dit plus haut, à mettre les 2 plannings sur la même feuille pour avoir simplement à cliquer sur chaque bouton "Optimiser Atelier 1" et "Optimiser Atelier 3".

Onglet 5 "3a-Planning conteneurs I1" = Feuille une fois le "module de réintégration" réalisé pour transférer comme on a dit ensemble les données finales de l'optimisation dans le chantier correspondant.

Onglet 6 "3b-Planning conteneurs I3" = Idem onglet 5 mais pour le deuxième atelier

Et enfin les deux derniers onglets Z correspondent à la BDD et aux différentes informations relevé pour définir les contraintes du projet.


Merci par avance pour ta réponse,

Cordialement
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
24 août 2020 à 14:17
Re,

Pour le module de réintégration des données, je penses à ça :

Sachant que l'on veut renvoyer le contenu "journalier" des différents conteneurs, on applique une fonction RechercheV combiné avec une sommes du nombres des références pour le jour donné ?!

Je ne sais pas si j'me fait bien comprendre mais je pense que l'idée est la. Je vais investiguer cette après-midi si l'on peut combiner ces deux formules, ou si non, comment faire pour réussir à le faire (peut être obligé en deux temps et donc un onglet intermédiaire ?!).

Cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
24 août 2020 à 15:43
Je suppose que le RECHERCHEV() est dans la feuille 3a-Planning poches IMF1 dans les cellules prévu de chaque jour et que la valeur cherchée est le code article (c'est une nouveauté? avant ça s'appelait Référence pièces), la zone de recherche est en '2-Optimisation chantiers'!AM27:AM126 et que tu veux récupérer les 5 premiers conteneurs pour le lundi, les 5 suivants pour le mardi etc..

Perso je ferais plutôt un SOMMEPROD(([@[Code Article]]=DECALER('2-Optimisation chantiers'!$AM$27;0;0;nb_lignes;1))*DECALER('2-Optimisation chantiers'!$AN$27;0;5*(COLONNE()-6)/2;nb_lignes;5))
A recopier dans toutes les cellules Prévu de la feuille 3a-Planning poches IMF1
Bon je n'ai pas testé, mais c'est l'idée.

MAIS, le planning de l'onglet 3a-Planning poches IMF1 est un planning de pilotage, pas de production.
A quoi sert tout le travail d'optimisation et le détail des conteneurs si c'est pour les consolider par jour?

Comment les gens de la prod vont utiliser un tel planning?
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
24 août 2020 à 15:12
Bonjour,

N'oublie pas que je ne suis pas dans ta tête et que je ne connais pas ton univers métier (organisation, vocabulaire, structure des données).

Exemples :
1) onglet 1b-PDP Amont_ok : qu'est-ce que c'est que données IMF3 ? c'est utile pour moi?

2)
....j'ai en réalité plusieurs noms qui correspondent à l'atelier 1. (ici I1 I2 et I4). Je les aient modifiés à la main

Où les as-tu modifiés? je ne vois aucune Atelier 1 ou Atelier 3

3) je viens de deviner ta codification du nom des onglets....
Tu les préfixes du n° du module qu'ils décrivent (ou auquel ils appartiennent.
Pourquoi ne le dis-tu pas!!!! Il me faut une heure de lectures répétées pour peut-être te comprendre.

4)
Ma question est la suivante : Doit-on procéder ainsi pour la suite ou est-ce possible de référencer ces 3 noms pour l'atelier 1 ? Correspondant à dire I1 = (I1 + I2 + I4).

Tu crées une table de correspondance à 2 colonnes (tu la mets là où ça a le plus de sens dans l'organisation de tes données).
Colonne de gauche : I1, I2, I4 et en regard Atelier 1 et en dessous I3A, I3I avec en regard Atelier 3.
Un simple RECHERCHEV(monchantier; matabledecorrespondance;2;FAUX) te rapatriera tes noms d'ateliers.

5) Dans ton onglet 1b-PDP Amont_ok je vois apparaître 3 colonnes (Code article, Client, nuance) et l'ordre des colonnes n'est pas conforme à l'attendu du module optimisation qui est : Référence pièce, Type, Nb MAX Atelier, Matière, Température, Classe température, Production semaine 1, Production semaine 2, Production semaine 3, Production semaine 4, Poids (Kg)
Il manque également matière.

6)
2)Pour passer du planning de production initiale complet à deux planning de production (avec les données techniques en +)

Encore une fois de quels onglets parles-tu , quelle range dans ces onglets?
Est-ce que planning de production initiale complet se trouve en '1b-PDP Amont_ok'!A2:P63?
Et les 2 plannings avec données techniques en +, c'est une hypothèse ou ils existent?
Et ces données techniques en +, c'est quoi?

7)
j'ai pensé à faire un tri puis copier/coller le premier planning (correspondant au planning atelier 1) sur la même feuille. Puis modifier les filtres pour le planning 3 et copier/coller.

C'est pas déconnant mais je ne sais pas sur quel onglet tu filtres.
Mais dans ce cas, envoie le résultat de tes filtres directement dans le module Optimisation.
C'est d'ailleurs ce que tu décris plus bas dans ton post.
N'oublie pas que tu ne colles dans Optimisation que les données conformes à son attendu.

D'ailleurs, en aparté, dans ta documentation, lorsque tu décriras tes modules, précises bien les entrées attendues et les résultats obtenus qui seront les entrées attendues du module suivant.

8)
Car une fois les données copiées, elles ne sont plus liées au tableau initial et ainsi plus de problème de filtres.

En fait je ne comprends pas ton souci avec les filtres et je ne vais pas chercher à le comprendre.

9)
Pour l'onglet optimisation, j'aimerai mettre les deux plannings l'un en dessous l'autre pour éviter de devoir faire une feuille par planning.
Est-ce possible ? Ou doit-on faire une feuille par planning également

Alors .... C'est faisable....... Mais ..... il faut adapter l'algorithme de pointage des données à utiliser.
Autrement dit, il faut ajouter un pointeur d'ateliers et l'intégrer dans les OFFSET() de la macro et les DECALER() de la feuille de calcul.

10)
Peut-on prendre en compte le nom propre de chaque matière directement 

C'est quoi les noms propres de chaque matière?
Sinon, oui a priori, du moment que c'est dans la colonne matière.

11)
Ps : j'ai essayé de reprendre tes formules dans le module d'optimisation (SIERREUR et autres) car l'ordre des colonnes à un petit peu changé,

Où ça? quel onglet, quelle cellule? je ne vois aucun ?Nom dans l'onglet 2-Optimisation chantiers si c'est le bon onglet.
Pour l'instant, l'ordre des colonnes ne doit pas changer (cf l'attendu du module optimisation sur les données en entrée). C'est dû au fait que j'ai codé en dur les références aux cellules. Ma tentative de rendre la macro indépendante des adresses physique s'est soldé par un échec et par 4 heures de débogage qui n'a rien donné. Je crois savoir pourquoi mais je n'ai pas retenté le coup.
Cette indépendance de la macro passe par des zones nommées. Tous les noms sont créés et il ne reste plus qu'à les intégrer correctement dans la macro (chose que je n'avais pas su faire précédemment).

12) Les onglets 3a-Planning poches IMF1 et 3b-Planning poches IMF3 sont censés récupérer les 5 ou 7 colonnes du convoyage optimisé du module optimisation (Varint à partir de AN27)?
Comment vas-tu marier le résultat d'optimisation (qui peut faire 48 colonnes dans le cas de Atelier 3) avec ton Planning Fusion de l'onglet 3a-Planning poches IMF1 ou 3b-Planning poches IMF3?
Au delà du format des données assez incompatible en terme de nombre de colonnes, il y a une question à soulever : que fait-on des convois au-delà de 35 pour l'atelier 3 et 25 pour l'atelier 2.

13) Je vois apparaître une 5ème semaine dans tes onglets *PDP Amont* : c'est nouveau?

14) Dans ton post <45> (le dernier) :
...Planning de production .... planning de production de base ...... planning de production initial, .......planning de production initiale complet : il y a une différence entre les 4? sont-ils dans un onglet du classeur que tu as joint à ton post <45>? si oui, lequel?
De façon générale, quand tu parles d'une donnée, indique sa référence complète avec le nom de l'onglet et le range.
Par exemple, planning de production initial devient planning de production initial ('0-PDP Amont'!A1:I62) et comme ça je sais de quoi tu parles.
Si planning de production initiale complet est la même chose que planning de production initial, supprime le mot complet.
Sinon tu précises son emplacement ('onglet'!range) histoire que je puisse différencier les 2 notions.

15) De l'onglet 0-PDP Amont à 1a-PDP Amont_maj tu ajoutes les colonnes Nuance T°C, Classe T°C, N_MAX, Type, Poids, Poids Total.
de l'onglet 1a-PDP Amont_maj à l'onglet 1b-PDP Amont_ok tu enrichis les références (et les clients qui ne devraient pas apparaître!!!!!!!!! tu veux te faire virer?)
Tous les enrichissements se font à partir de la table t_bdd de l'onglet Z1-Base de données.
Pourquoi ne le dis-tu pas comme ça, tout simplement?
Et pourquoi ne pas tout faire en une seule fois (pas d'onglet intermédiaire)?
Au fait la dernière colonne Poids Total n'est pas utile.
Le module d'optimisation se charge de la calculer en fonction de la semaine sélectionnée dans les paramètres de ce module (en plus, je ne me souviens plus si elle est utilisée dans le programme, je l'avais mise dans un souci de lisibilité).


3h30 pour décrypter ton post <45>

Cordialement
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
24 août 2020 à 15:24
Bonjour,

Oui désolé c'est vrai que je n'ai pas pris le recul nécessaire pour que tu puisses comprendre simplement et ne soit pas obligé de décoder tout ça...

Un oubli de ma part pour les clients et références (fichier supprimé du web + maj du fichier).

Je te fais un récapitulatif + une réponse complète de toutes tes questions ce soir en rentrant dans le format demandé Onglet ('onglet'!range).


Merci par avance et désolé des 3h30 pour décoder tout ça...

Cordialement

PS : lien du nouveau fichier sans les clients ou autres : https://www.cjoint.com/c/JHynycikKAx
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
Modifié le 24 août 2020 à 19:10
Re,


Alors je reprend point par point pour éclaircir ces données finales.

1) Ce qu'on a appelé atelier 1 et atelier 3 ont des "nom de code" égal à IMF1 et IMF3 mais en gros ce sont les ateliers et ateliers 3. Ce n'est donc pas utile pour toi, juste pour infos.

2) Quand je dis que je les ai modifiés, c'est juste que j'avais fait un Ctrl + F pour ouvrir la fenêtre de recherche et j'avais remplacé, les différentes références des "ateliers" (appelé dans le jargon métier de mon entreprise "chantiers").

3) Oui en effet, vu qu'on a défini un onglet par planning de production (atelier 1 et 3). J'ai donc fait un onglet Planning IMF1 (nouveau nom pour atelier 1) et IMF3 (nouveau nom pour atelier 3).

4) Je vais regarder ça et je reviens vers toi si vraiment ça coince. Mais normalement ça devrait aller.

5) Oui. j'avais volontairement enlevées ces colonnes en les pensant confidentielles par rapport au format initial que je t'ai donné. Néanmoins, j'aurais juste du les laisser mais avec le contenu vide comme la, surtout vu que cela doit modifier le code j'imagine ?! L'ordre affiché est le bon et le dernier, et l'onglet matière est en réalité appelée nuance.

6) Alors justement quand je parles des données techniques en plus, cela correspond aux colonnes ((onglet Z1 - Base de données) qui sont renvoyé via rechercheV dans (onglet 1a-Pdp Amont) Nuance, T°C, Classe de T°C, N_Max et Poids.
Donc c'est une erreur d'écriture de dire technique "en +" car ce ne sont ni plus ni moins que les valeurs nécessaires à la mise en route du module d'optimisation.

8) Oui pas de soucis, au final cela ne sert à rien d'en parler ^^'.

9) Si il faut adapter l'algorithme à utiliser, laissez tomber. En réalité, d'avoir un atelier/chantier détaillé par onglet, ce sera je pense même mieux.

10) Les noms propres de chaque matière (= nuance) sont situé (2-Optimisations chantiers;S3:T8). Et oui cela revient au même et sera présent dans la colonne "nuance" qui est le nouveau nom de la colonne matière.

11) Oui dans (2-Optimisation chantier;Q2:Q38). J'ai bien changé les colonnes pour obtenir la même formule qui se référence sur les mêmes cellules mais, vu que les nouveaux "noms" des matières/nuances ne sont pas pris en compte, il ne doit pas trouver ce qu'il cherche j'imagine ?!

Ah donc cela va poser problème ces nouveaux noms et placement de colonne dans la macro? de problèmes très ou trop long à résoudre ?

12) Oui pour les onglets (3a-Planning IMF1) récupérera le contenu des "convois" pour l'atelier 1 et (3b-Planning IMF3) récupèrera le contenu des "convois" pour l'atelier 3 (qui sera alors situé dans un autre ongle créée comme vu plus haut).

Comment vas-tu marier le résultat d'optimisation (qui peut faire 48 colonnes dans le cas de Atelier 3) avec ton Planning Fusion de l'onglet 3a-Planning poches IMF1 ou 3b-Planning poches IMF3?
Au delà du format des données assez incompatible en terme de nombre de colonnes, il y a une question à soulever : que fait-on des convois au-delà de 35 pour l'atelier 3 et 25 pour l'atelier 2.


Alors la, on ne mariera qu'un contenu "réalisable" et donc inférieur ou égal à 25 convoi pour l'atelier 1 (IMF1) et 35 convois pour l'atelier 3 (IMF3).

Néanmoins, on laisse la possibilité de générer plus de ces convois la afin de démontrer que la production n'est pas réalisable dans la semaine au vu du nombre de convois requis et de ce que l'on possède au Maximum (Rappel atelier1/IMF1 25 Convois par semaine MAX et Atelier3/IMF3 35 Convois par semaine MAX).

Mais du coup il sera juste plus simple, surement de faire le combo de formules qui va bien en se fixant cette limite.

13) Alors mea culpa, cela arrive de temps en temps. Mais dans tous les cas, l'objectif de ce projet est d'arriver à 4 semaines Maximum, cette colonne sera donc supprimé dans le format initial du premier onglet (0-PDP Amont).

14) Oui et je vais essayer d'être clair et concis ^^ :
- Ce que j'appelle planning de production initial correspond à (0-PDP Amont) --> données d'entrées "Classeur excel de production" dans le petit schéma modulaire que tu m'as fait.

15) Tous les enrichissements se font à partir de la table t_bdd de l'onglet Z1-Base de données. Oui c'est vrai que j'ai chercher midi à 14 heures la...

Et pourquoi ne pas tout faire en une seule fois (pas d'onglet intermédiaire)?


Effectivement je pensais qu'il fallait obligatoirement découper en 2 étapes, mais si on peut le faire en 1 seule : bien sur on le fait en 1 seule ^^.

Au fait la dernière colonne Poids Total n'est pas utile.
Le module d'optimisation se charge de la calculer en fonction de la semaine sélectionnée dans les paramètres de ce module (en plus, je ne me souviens plus si elle est utilisée dans le programme, je l'avais mise dans un souci de lisibilité).


D'accord. Je pensais qu'elle était requise mais du coup si elle ne l'est pas on peut l'enlever. Ou alors si comme tu dis, cela permet d'être plus lisible et n'empêche pas le fonction du solveur, on va la laisser.

-----------------------

Suite de réponse du commentaire :

Je suppose que le RECHERCHEV() est dans la feuille 3a-Planning poches IMF1 dans les cellules prévu de chaque jour et que la valeur cherchée est le code article (c'est une nouveauté? avant ça s'appelait Référence pièces), la zone de recherche est en '2-Optimisation chantiers'!AM27:AM126 et que tu veux récupérer les 5 premiers conteneurs pour le lundi, les 5 suivants pour le mardi etc..


Oui c'est exactement ça. Sauf que dans le format initial Code article / Client / Référence. Anciennement comme tu dit on appelait ça Références pièces mais en réalité cela s'appelle code article (mea culpa également, décidément les boulettes s'accumule)

Perso je ferais plutôt un SOMMEPROD(([@[Code Article]]=DECALER('2-Optimisation chantiers'!$AM$27;0;0;nb_lignes;1))*DECALER('2-Optimisation chantiers'!$AN$27;0;5*(COLONNE()-6)/2;nb_lignes;5))
A recopier dans toutes les cellules Prévu de la feuille 3a-Planning poches IMF1
Bon je n'ai pas testé, mais c'est l'idée.


D'accord je vais regarder ça de plus près !

MAIS, le planning de l'onglet 3a-Planning poches IMF1 est un planning de pilotage, pas de production.
A quoi sert tout le travail d'optimisation et le détail des conteneurs si c'est pour les consolider par jour?


Alors c'est juste pour avoir un visuel, en fonction de toutes la semaine "optimisé" précédemment dans l'onglet (2- Optimisation chantiers), des différentes pièces requises pour assurer le convois par jour. Comme ça cela, si le projet est validé et mis en place, pourra être un moyen de discussion envers l'autre secteur qui fournis les pièces au jour le jour. On pourras lui dire avec certitude, j'ai utilisé l'outil et il me dit que pour mardi je dois avec 20 références A et 5 références B pour remplir au MAX mes différents convoi du jour.

Comment les gens de la prod vont utiliser un tel planning?


Ce sera mon n+1 qui va l'utiliser pour organiser comme tu dis le pilotage des différentes références, et assurer une priorisation de leurs réception pour répondre à l'optimisation faite par le module ! Mais encore une fois, cela se fera si le projet est accepté et validé après essais sur le terrain.

Cordialement
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
24 août 2020 à 20:02
Et je voulais te demander,

peut tu me joindre le fichier avec l'atelier 3 ? que je vois ce que ça donne aussi stp, car je n'ai que celui avec l'atelier 1 ^^

Cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
24 août 2020 à 21:34
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
24 août 2020 à 21:36
Merci !
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
24 août 2020 à 20:27
2) Quand je dis que je les ai modifiés, c'est juste que j'avais fait un Ctrl + F pour ouvrir la fenêtre de recherche et j'avais remplacé, les différentes références des "ateliers" (appelé dans le jargon métier de mon entreprise "chantiers").

Où vois tu des "Atelier 1" ou "Atelier 3" dans ton fichier?
Ma question était simple et claire (enfin, je crois) Où les as-tu modifiés? Je ne te demande pas comment tu les as modifiés mais dans quel onglet et dans quelles cellules.

3) Oui en effet, vu qu'on a défini un onglet par planning de production (atelier 1 et 3). J'ai donc fait un onglet Planning IMF1 (nouveau nom pour atelier 1) et IMF3 (nouveau nom pour atelier 3).

Je te parle des préfixes de tes onglets : 1, 2 et 3, pas des onglets planning.

4) Je vais regarder ça et je reviens vers toi si vraiment ça coince. Mais normalement ça devrait aller.

Là j'ai un doute qui se rapporte à la question 2) : as-tu fait manuellement les remplacements des I1, I2, I4 par "Atelier 1"?

11) Oui dans (2-Optimisation chantier;Q2:Q38). J'ai bien changé les colonnes pour obtenir la même formule qui se référence sur les mêmes cellules mais, vu que les nouveaux "noms" des matières/nuances ne sont pas pris en compte, il ne doit pas trouver ce qu'il cherche j'imagine ?!

C'est parce que tu as changé l'ordre des colonnes. La formule, qui utilise nb_lignes qui est en erreur, ne peut plus fonctionner.
Mais cette colonne est purement informative.
Le problème de la modification du nombre de colonnes et de leurs emplacements dans l'onglet optimisation, c'est qu'il faut que je réaffecte mes pointages dans la macro.
Comme j'ai travaillé comme un sagouin, j'ai tout mis en dur pour "aller plus vite".
Et comme expliqué dans mon post précédent, ma tentative pour rendre tous les adressages indépendants du placement sur la feuille a été un fiasco total. J'ai dû faire marche arrière.

Ce sera mon n+1 qui va l'utiliser pour organiser comme tu dis le pilotage des différentes références

Bon. C'est un peu décevant car l'optimisation sert à améliorer la productivité et est donc un avantage concurrentiel pour les entreprises.

Cordialement
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
Modifié le 24 août 2020 à 21:28
Re,

Où vois tu des "Atelier 1" ou "Atelier 3" dans ton fichier?
Ma question était simple et claire (enfin, je crois) Où les as-tu modifiés? Je ne te demande pas comment tu les as modifiés mais dans quel onglet et dans quelles cellules.


Alors je les ai modifié à partir du premier onglet (0- PDP Amont;D2:D62) pour les valeurs citées precedemment "I1, I2 et I4 en Atelier 1" et "I3A et I3I en Atelier 3".

3) je viens de deviner ta codification du nom des onglets....
Tu les préfixes du n° du module qu'ils décrivent (ou auquel ils appartiennent.
Pourquoi ne le dis-tu pas!!!! Il me faut une heure de lectures répétées pour peut-être te comprendre.


Alors j'ai simplement mis pour les différentes étapes mais je pourrais laisser le même numéro par rapport au module ce sera plus simple :
0 = feuille Excel intiale
1 = module d'extraction
2 = Module d'optimisation
3 = Module de réintégration

Je te modifie ça et tu me diras si ça te va en compréhension.

Là j'ai un doute qui se rapporte à la question 2) : as-tu fait manuellement les remplacements des I1, I2, I4 par "Atelier 1"?


Oui je l'ai fait manuellement avant de te fournir les données avec la fonction rechercher et remplacer d'Excel.

C'est parce que tu as changé l'ordre des colonnes. La formule, qui utilise nb_lignes qui est en erreur, ne peut plus fonctionner.
Mais cette colonne est purement informative.
Le problème de la modification du nombre de colonnes et de leurs emplacements dans l'onglet optimisation, c'est qu'il faut que je réaffecte mes pointages dans la macro.
Comme j'ai travaillé comme un sagouin, j'ai tout mis en dur pour "aller plus vite".
Et comme expliqué dans mon post précédent, ma tentative pour rendre tous les adressages indépendants du placement sur la feuille a été un fiasco total. J'ai dû faire marche arrière.


Arf. Donc du coup il faut 4 heures supplémentaires pour redéfinir via les nouvelles colonnes ? :/

Bon. C'est un peu décevant car l'optimisation sert à améliorer la productivité et est donc un avantage concurrentiel pour les entreprises.


C'est vrai que cela, en théorie si c'est accepté et mis en place (et la on parle après une grosses campagnes d'essais et de validation), oui.
Qu'entendais tu par une optimisation autre ? Je suis curieux d'avoir un exemple ^^ (ou tout simplement une optimisation à titre personnel ? Ex : pour optimiser un rangement dans sa maison ?)

Lien du fichier avec les nouveaux nom d'onglets : https://www.cjoint.com/c/JHytCiOqSw7

Ps : j'ai rajouté un onglet supplémentaire car il faut un onglet par atelier (I1 et I3) tu m'as dis, c'est bien ça ? (pour l'instant la copie de I1 avec le nombre de convois augmentés).

Cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
24 août 2020 à 21:54
Je ne vois aucun Atelier dans ce dernier fichier.

Pour la dernière fois, indique moi où il y a "Atelier 1" ou "Atelier 3" dans ton fichier.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
24 août 2020 à 21:44
Je ne sais pas pourquoi mais dans le fichier précédent il n'y a aucun "Atelier 1" ou "Atelier 3".

Où ai-je parlé d'une optimisation autre?

Pour les nouvelles colonnes, il faut 1h tout compris avec les tests...... si tout va bien.....
sinon......

Question : ton n+1 (si c'est ton commanditaire) a t-il intégré la maintenance de l'application si le projet est accepté?
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
Modifié le 24 août 2020 à 21:59
Re,

Oui j'avais mis I1 et I3 mais j'ai remodifié le nom des deux onglets autant pour moi.
Pour l'histoire des atelier 1 et atelier 3, je met le détail "chantiers" pour savoir qui correspond à quoi en (2-Optimisation atelier 1;S11:T15). Et la colonne contenant les différents chantiers en (2-Optimisation atelier 1;D1) - (BP et TGP ne sont pas à prendre en compte ici, désolé j'ai peut être oublié de les filtrer dans tous les onglets.

Et du coup pour ne pas confondre, je t'ai remis le titre atelier en haut du tableau (au lieu de chantier si ça te parle mieux ^^).

Arf. Espérons que tout ailles bien alors... encore désolé, si j'avais su je t'aurais donné le bon format de colonne dès le départ.

Je devais le voir cet après-midi mais au final je le vois demain pour lui parler de tout ça. Mais si cela est accepté, il devra y avoir quelqu'un derrière oui. A voir comment ça se présente à la fin de ma soutenance de présentation le 2 Septembre..

Cordialement

https://www.cjoint.com/c/JHyt5gUBRl7
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
24 août 2020 à 22:32
Bon, ça commence à m'agacer sérieusement.

Il n'y a toujours aucun Atelier dans tes fichiers et tu fais référence à 2-Optimisation atelier 1;S11:T15 qui concerne les nuances et non la correspondance chantiers/Ateliers.

Alors maintenant, tu te débrouilles comme tu veux mais tu pars de ton onglet 1a-PDP Amont_maj qui contient un sur ensemble (plus de détails en fait) de ce qui est nécessaire pour 2-Optimisation I3 et 2-Optimisation I1.
Tu en extrais ce qu'il faut traiter pour Atelier 1 puis pour Atelier 3.
Tu réorganises tes colonnes comme nécessaire pour la structure actuelle du module d'optimisation qui doit trouver les mots "Atelier 1" ou "Atelier 3" dans la colonne Atelier.
Tu mets tes nuances à la place des matières si tu veux et tu roules.

Tu gardes de côté tes détails car tu en auras peut-être besoin pour le module 3 et tu devras réconcilier le convoyage optimisé avec les détails de ton extraction.

Cordialement
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
Modifié le 25 août 2020 à 08:45
Bonjour,

Je m'excuse je ne souhaites pas t’agacer..

J'ai remis de l'ordre comme demandé. J'ai volontairement laisser l'onglet 0-PDP Amont pour avoir en tête le format initial de la feuille excel.

Ensuite dans 1a-PDP Amont_converti, c'est la où je copie/colle les valeurs (dans les premières colonnes A à H) et j'obtiens via RechercheV les différentes données qu'on a besoin pour faire marcher le module d'optimisation.

Ensuite toujours dans le même onglet, j'enlève les cellules atelier = 0 (pour ne pas obtenir BP et TGP comme détaillé plus haut) puis je fait un tri via atelier et matière. Et je copie/collage spécial avec valeurs (pour ne pas renvoyer la formule rechercheV et surtout figer les résultats) dans (2- optimisation Atelier 1- A2:H39) pour les données en vert qui correspondent à l'atelier 1 et idem pour les données oranges qui correspondent à l'atelier 3.


J'espère que cela répond à la demande initiale pour le module. Normalement oui,

Lien du fichier modifié : https://www.cjoint.com/c/JHzgGss2b4x


Merci par avance,


Cordialement

Edit : même si normalement tu n'en auras plus besoin, si tu cherches les tableaux avec correspondances nuance pour matière et chantier pour ateliers ils sont situés en (Z1-Base de donnée;O11:P24)
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
Modifié le 26 août 2020 à 00:21
Bonsoir,


Alors je voulais te faire un retour car j'ai réussi à montrer le fichier à mon responsable aujourd'hui.

Il est très satisfait ! Normal vu le travail de dingue que tu as fais aussi ;').

Bien sur, il ne comprenais pas pourquoi le format des colonnes ne correspondaient pas (idiot que je suis à ne pas avoir donné le bon format au début..).

Je voulais te demander quelque chose néanmoins :

Dans les données situées en (B2:B15), la liste déroulante avec le choix du type 1 ou 2 ne permet de sélectionner que le type 1. La liste déroulante renvoi en $AV$2:$AV$3 ou il n'est question ici que du choix binaire des poches donc 1 ou 0 (j'me perd surement un peu du coup ^^)


Pour le changement du nom des matières, oui pas de soucis cela fonctionne merci !

As-tu pu regarder si c'est possible de rajouter/modifier le format de départ : l'ordre des colonnes ?

Pour passer de : Référence pièce Type Nb MAX Atelier Matière Température Classe température Production semaine 1 Production semaine 2 Production semaine 3 Production semaine 4 Poids (Kg)

à : Code article Client Reference Chantier S27 S28 S29 S30 Atelier Matière Classe T°C N_MAX Type Poids

Si cela ne prend pas trop de temps, ce serait vraiment cool d'obtenir ceci. Après promis, comme tu l'as dis dans le dernier message je me débrouille.

Donc du coup, car tout travail mérite "salaire", je souhaiterais t'offrir un cadeau (je ne sais pas si tu es plus chocolats, bouteille de vin, ou encore autre chose spécifique ?) pour me sauver la mise sur un truc aussi poussé que le programme que tu as mis en place.

Tu me diras ce que tu en penses et si tu acceptes, tu m'enverras une adresse postale en message privé que je te fasse ce cadeau :).

Ou alors si rien de tout ça te convient, je veux bien t'ajouter en contact professionnel sur Linkedin et je serai me rappeler de cette dette dans le futur si jamais un jour tu as besoin de quoi que ce soit !

Merci encore pour tout,

Cordialement

Lien du fichier en question qui ne contient qu'un seul onglet : https://www.cjoint.com/c/JHzwpCSiHa7

Edit : Pour le calcul des différents atelier, je dois bien faire les 2 séparément sur 2 fichiers différents (code appliqué au fichier c'est ben ça ?) Ou est-ce que je peut regrouper les 2 fichiers (atelier 1 et atelier 3) en deux onglets et lancer depuis chaque onglet ?
Et je n'ai pas trouvé le même format que le fichier au dessus pour l'atelier 1, as-tu ça dans ton ordinateur après avoir avancé les différentes modifications ?

Merci :)
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
26 août 2020 à 04:37
Bonsoir,

Dans les données situées en (B2:B15), la liste déroulante avec le choix du type 1 ou 2 ne permet de sélectionner que le type 1. La liste déroulante renvoi en $AV$2:$AV$3 ou il n'est question ici que du choix binaire des poches donc 1 ou 0 (j'me perd surement un peu du coup ^^)

Ça alors !! je ne sais même pas d'où sortent ces validations qui n'ont aucun sens puisque ce sont les données d'entrée de prod..
Je les ai virées (les validations, pas les données).

Pour le changement du nom des matières, oui pas de soucis cela fonctionne merci !

En fait, je n'avais aucun problème avec le fait de changer les matières par les nuances.
C'est du texte qui ressort en en-tête du résultat de l'optimisation.
Ça a sûrement plus de sens de mettre les nuances.

As-tu pu regarder si c'est possible de rajouter/modifier le format de départ : l'ordre des colonnes ?

Je t'ai fait une macro extraction() qui se lance sur la feuille 1a-PDP Amont_converti dont l'objectif est de réorganiser les colonnes de façon à passer de ton format à celui attendu par le module d'optimisation (en fait, les modules).
J'ai gardé les colonnes supplémentaires (client, Référence, chantier) pour les mettre dans les colonnes à droite (M:O) des onglets d'optimisation.
De cette façon je n'ai pas à retoucher la macro optimisation.
Tu feras attention, cette macro est tellement rapide qu'on crois qu'elle tourne encore.
C'est pour cette raison que j'ai ajouté en '1a-PDP Amont_converti'!Q5:Q10 des infos de quantification du travail.
En fait c'est cette macro que je te demandais de faire car 80% repose sur l'enregistreur macro d'excel. Mais il est vrai qu'après... pour les 20% restants....

La conséquence de ce choix de garder le format de la macro d'optimisation, c'est qu'il faudra peut-être faire l'inverse dans le module de réintégration.
Encore que, vu que tu n'as besoin que de consolidations journalières, le format du détail importera peu.


J'ai regroupé les onglets (hors ceux d'optimisation) de ton fichier ccm-SC-25082020-v2.xlsm dans mon classeur d'optimisation.
J'ai dupliqué mon onglet d'optimisation pour avoir les 2 onglets, un pour chaque atelier.
J'ai mis le tout dans un classeur ccm-SC-26082020-v3.xlsm que voici : https://www.cjoint.com/c/JHAcjpycjtx

Fonctionnement :
1) tu remplis les données brute de prod dans 0-PDP Amont
2) tu vas dans 1a-PDP Amont_converti et tu cliques sur le bouton Extraction données (une demi seconde d'exécution)
3) tu vas dans l'onglet 2-Optimisation Atelier 1, tu t'émerveilles devant la mise en place harmonieuse des données, tu choisis la semaine à traiter (en Z14), tu cliques sur le bouton optimiser et tu obtiens un résultat au bout d'une quarantaine de secondes.
3 bis) tu fais la même chose avec 2-Optimisation Atelier 3.
4) module réintégration : là c'est le vide sidéral car je ne sais pas vraiment comment tu veux consolider tes convoyages optimisés.

Il est possible d'automatiser l'enchaînement des optimisations des 4 semaines pour les 2 ateliers. Je ne sais pas si ça correspond au mode de travail de la personne qui s'en servira.


Petite info : j'ai ajouté une info poids total en Z8 des onglets d'optimisation.
Grosse info : c'est la même macro qui optimise les 2 ateliers.

Et c'est un vrai plaisir de voir travailler cette optimisation. En plus quand on essaie de contrôler le résultat, on vois qu'elle fait un sacré boulot.

tout travail mérite "salaire"

Merci, c'est gentil mais les interventions sur les forum sont bénévoles.
En plus j'ai pris 12kg avec le confinement donc ...
Pour linkedin, je n'ai plus l'âge d'en avoir l'utilité.


Cordialement
0
Paradjanov Messages postés 57 Date d'inscription mardi 18 août 2020 Statut Membre Dernière intervention 25 octobre 2020 18
26 août 2020 à 16:27
Bonjour,

Ça alors !! je ne sais même pas d'où sortent ces validations qui n'ont aucun sens puisque ce sont les données d'entrée de prod..
Je les ai virées (les validations, pas les données).


ça marche, merci. C'est vrai que cela me paraissait bizarre..

En fait, je n'avais aucun problème avec le fait de changer les matières par les nuances.
C'est du texte qui ressort en en-tête du résultat de l'optimisation.
Ça a sûrement plus de sens de mettre les nuances.


Oui tant que cela reste que du texte c'est good.


J
e t'ai fait une macro extraction() qui se lance sur la feuille 1a-PDP Amont_converti dont l'objectif est de réorganiser les colonnes de façon à passer de ton format à celui attendu par le module d'optimisation (en fait, les modules).
J'ai gardé les colonnes supplémentaires (client, Référence, chantier) pour les mettre dans les colonnes à droite (M:O) des onglets d'optimisation.
De cette façon je n'ai pas à retoucher la macro optimisation.
Tu feras attention, cette macro est tellement rapide qu'on crois qu'elle tourne encore.
C'est pour cette raison que j'ai ajouté en '1a-PDP Amont_converti'!Q5:Q10 des infos de quantification du travail.
En fait c'est cette macro que je te demandais de faire car 80% repose sur l'enregistreur macro d'excel. Mais il est vrai qu'après... pour les 20% restants....

La conséquence de ce choix de garder le format de la macro d'optimisation, c'est qu'il faudra peut-être faire l'inverse dans le module de réintégration.
Encore que, vu que tu n'as besoin que de consolidations journalières, le format du détail importera peu.


J'ai regroupé les onglets (hors ceux d'optimisation) de ton fichier ccm-SC-25082020-v2.xlsm dans mon classeur d'optimisation.
J'ai dupliqué mon onglet d'optimisation pour avoir les 2 onglets, un pour chaque atelier.
J'ai mis le tout dans un classeur ccm-SC-26082020-v3.xlsm que voici : https://www.cjoint.com/c/JHAcjpycjtx


je te remercie pour avoir fait tout ce travail, néanmoins je reste sur ma "faim" car lorsque je veux lancer la macro j'ai un message d'erreur qui me dit "Erreur de compilation : Projet ou bibliothèque introuvable". Surement un enregistrement pas fini ou autre ? Car j'ai bien activer les macros + le contenu + lancé opensolveur.


Fonctionnement :
1) tu remplis les données brute de prod dans 0-PDP Amont
2) tu vas dans 1a-PDP Amont_converti et tu cliques sur le bouton Extraction données (une demi seconde d'exécution)
3) tu vas dans l'onglet 2-Optimisation Atelier 1, tu t'émerveilles devant la mise en place harmonieuse des données, tu choisis la semaine à traiter (en Z14), tu cliques sur le bouton optimiser et tu obtiens un résultat au bout d'une quarantaine de secondes.
3 bis) tu fais la même chose avec 2-Optimisation Atelier 3.
4) module réintégration : là c'est le vide sidéral car je ne sais pas vraiment comment tu veux consolider tes convoyages optimisés.

Il est possible d'automatiser l'enchaînement des optimisations des 4 semaines pour les 2 ateliers. Je ne sais pas si ça correspond au mode de travail de la personne qui s'en servira.


D'accord merci pour le process, même si cela me parleras mieux en direct une fois le bug de la macro résolu :).

Pour la partie 4), je souhaite extraire les contenu de chaque "convoi", c'est à dire dans l'idée :
- Les différentes références qui sont dedans (normalement la on a vu je devrais pouvoir obtenir ça avec une =(sommeprod(recherchev)) pour obtenir sur 1 jour entier en fonction du nombre de convois réalisé dans la journée.
- La température d'utilisation du convoi
- La matière/nuance (ça c'est résolu car on a vu ensemble que je pouvais rentrer du texte directement)
- La capacité maximum du convoi utilisé (et la ça se corse un peu car dans l'idée je voudrai obtenir les 450 Kg si le convoi est remplis à plus de 250 Kg sinon donner la valeur de 250 Kg. C'est à dire si 180Kg --> Convoi type D (= 250 Kg capa MAX) et si Convoi égal à + de 250 Kg alors --> Convoi type E (450 kg MAX).

Pour le dernier point, si on arrives a obtenir une cellule qui donne le poids, j'pourrais au pire (même si ce ne sera surement pas beau esthétiquement), mettre une formule type =SI(Cellule_resultat<250;250;450)).


Petite info : j'ai ajouté une info poids total en Z8 des onglets d'optimisation.
Grosse info : c'est la même macro qui optimise les 2 ateliers.


D'accord merci ! Et du coup, même si c'est bien ce qu'il me semblait avoir compris, ce sera plus simple une seule macro pour les deux comme ça pas besoin de deux fichiers différents.


Merci, c'est gentil mais les interventions sur les forum sont bénévoles.
En plus j'ai pris 12kg avec le confinement donc ...
Pour linkedin, je n'ai plus l'âge d'en avoir l'utilité.


Oui je sais bien que les forums sont bénévoles. Mais en repensant à ce projet d'optimisation sans aucune base à coder tout ça et sans ton aide, je ne sais pas comment j'aurai pu m'en sortir !
Pour les 12 Kg et l'histoire du confinement, je crois qu'on est tous dans la même galère ^^'.

Et pour linkedin : ok. Donc impossible de te remercier d'une autre manière qu'un gros MERCIIIIIIIIIIIIIIIIIIIIIIIIII ici alors :).


Cordialement,
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
Modifié le 26 août 2020 à 18:06
Projet ou bibliothèque introuvable

Tu vas dans VBE (Alt <F11>).
Dans le menu Outils\Références tu coche openSolver.

ce sera plus simple une seule macro pour les deux comme ça pas besoin de deux fichiers différents.

Attention : il ne faut pas confondre fichier et macro.
Tu auras dans ton classeur excel, 2 onglets optimisation (un pour chaque atelier).
Quand tu cliqueras sur le bouton Optimiser de chaque onglet, tu aboutiras à la même macro optimisation.
Pour être complètement précis, tu passeras d'abord par une macro de 2 lignes qui affecte la bonne feuille de calcul à OpenSolver avant d'aller sur optimisation().
Dim TestSheet As Worksheet

Sub Optimisation_1()
    Set TestSheet = Sheets("2-Optimisation Atelier 1")    'nécessaire pour openSolver
    Optimisation
End Sub
Sub Optimisation_3()
    Set TestSheet = Sheets("2-Optimisation Atelier 3")    'nécessaire pour openSolver
    Optimisation
End Sub


La matière/nuance (ça c'est résolu car on a vu ensemble que je pouvais rentrer du texte directement)

Tu n'as rien à rentrer puisque tu as tes données d'origine en colonne 5 de t_bdd.
Tu n'as plus besoin de transcoder tes nuances en matières 1 à 6.
Je vais même mettre "nuances" en titre de colonne à la place de "matières"
Dans la macro extraction() il suffit de faire ça :
        '.Range("E2").FormulaR1C1 = "=VLOOKUP(RC[-4],t_bdd,13,FALSE)"         'Matière
        '.Range("E2").Resize(nbl, 1).FillDown
    
        .Range("E2").FormulaR1C1 = "=VLOOKUP(RC[-4],t_bdd,5,FALSE)"         'Nuance
        .Range("E2").Resize(nbl, 1).FillDown

J'ai changé le 13 en 5. Au lieu de rapatrier la colonne 13 (celle des matières), je récupère celle des nuances.

- La température d'utilisation du convoi .....

Dans 1a-PDP Amont_converti du fichier que tu m'as transmis, tu n'as plus l'info température. Il n'y a que classe T°C.
De toutes façons, l'optimisation se fout de la température, du client, du chantier, et autre référence.
C'est le module de réintégration qui en aura éventuellement besoin. Et comme il y a bijection entre Code article et toutes ces données, tu récupèreras sans problèmes ces infos.
Il faut absolument que tu te sortes de la tête le besoin de tout rapatrier dans optimisation. Tu n'en as pas besoin!!!!
Ou alors, si tu en as besoin, explique moi où car jusqu'à présent, je ne m'en suis pas servi.

Pour la partie 4), je souhaite extraire les contenu de chaque "convoi", c'est à dire dans l'idée :
- Les différentes références qui sont dedans (normalement la on a vu je devrais pouvoir obtenir ça avec une =(sommeprod(recherchev)) pour obtenir sur 1 jour entier en fonction du nombre de convois réalisé dans la journée.

Je trouve qu'il y a antinomie entre le détail et la consolidation.
Ceci dit, pour savoir quoi faire dans ce module 3, il faut que tu construises manuellement ce que tu souhaites obtenir en sortie à partir d'une optimisation en expliquant les formules réelles (pas supposées) utilisées.

mettre une formule type =SI(Cellule_resultat<250;250;450))

Elle est très bien cette formule.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
26 août 2020 à 18:23
NB :
la structure des données de l'onglet doit être toujours la même :
Code article	Client	Reference	Atelier	S27	S28	S29	S30

Naturellement, tu changes les n° de semaine au fil du temps.
Ces sont ces en-têtes de colonnes de prod que j'utilise dan les onglets optimisation pour créer le titre en AN18:BL18.

fichier à jour des nuances à la place des matières : https://www.cjoint.com/c/JHAqxy36s0x
0