Besoin d'aide pour un faire un programme de MRP

Signaler
Messages postés
14
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
22 décembre 2010
-
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011
-
Bonjour voila j'ai un projet a faire dans le cadre d'un formation IUT,
je dois faire un programme et je bloque pour faire une manip

je vais essayer d'exposer mon problème

J'ai besoin pour un des produits de donner un besoin brut et de dire pour quelle semaine il sera nécessaire. Prenons le besoin brut A=2 et il est nécessaire pour la semaine 9.



Ensuite selon les quantité que j'ai rentré, par exemple si pour A il faut 10B et 3C et que le délai pour fabriquer B est de 1 semaine, alors à la semaine 8 il faudra 20B et 6C ensuite pour B il faut 10D et 2E et que le délai est de 2 semaines alors à la semaine 6, il faudra 200D et 40E.

Il faudrai que excel me calcul cela automatiquement sachant que la semaine donné pour le besoin brut peut être n'importe laquel.

voici le lien URL de mon début de programme pour vous puissier mieu visualisé:
http://www.cijoint.fr/cjlink.php?file=cj201012/cijVdwHu9H.xls

10 réponses

Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

Bonsoir,
Intéressant comme pb. J'ai moi aussi fait dans le temps ce genre de code pour faire un calcul de besoins (non pour les Etudes mais pour le boulot).

Crée-toi une "base" sous Excel càd crée une table "fiche_produit" sur une nouvelle feuille (onglet) et mets en colonne A les ref. produits (A, B C, D, E dans ton exemple) et en colonne B le Lead Time (délai de fab. ou d'achat).
Crée une autre table "nomenclature" (nouve onglet) pour saisir les "nomenclatures produit" càd A=10B + 3C (confère ton exemple). Pour cela, en colonne A, on met le champ "code" qui sera ta clé unique et représentera le code du lien article père/article fils.
Colonne B = champ article père
Colonne C = champ article fils
Colonne D = champ quantité

Pour comprendre cette table, ci-dessous ton exemple de A =10B+3C sous forme d'enregistrements :
Col A : 1 (numéro d'enregistrement)
Col B : A (référence produit A)
Col C : B (référence produit B)
Col D : 10
Ligne suivante, nouvel enregistrement
Col A : 2
Col B : A (référence produit A)
Col C : B (référence produit C)
Col D : 3

Ensuite, c'est du traitement de bases de données.

Il faut parcourir la table nomenclature en testant la colonne B sur la ref. produit cherchée (par ex. A), rechercher la ref. de l'article fils et noter la qté. Avec la ref. fils, aller dans la table fiche_produit pour rechercher le LT (lead time) de la ref. fils (ex. B).
Ensuite, tu gardes en mémoire ce lead time (multiplié ou non par la qté - ça dépend si on fait les produits à al suite ou si on peut les faire en même temps). Tu recommences avec l'enregistrement suivant et tu gardes le lead time en mémoire s'il est plus grand que celui qui est en mémoire (max).

Je te laisse traduire cela en vb. Si tu t'y connais, c'est assez simple. Si tu cales, fais-moi signe.
Messages postés
14
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
22 décembre 2010

Merci beaucoup pour ta réponse, cependant on nous as donner ce projet alors que je ne savais quasiment pas manipuler le langage vba donc je ne sais pas trop comment traduire ce que tu m'a donner en vba. si cela n'est pas trop long pourrais tu me le faire en vba, sans vouloir abuser de ta gentillesse.

merci encore
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

C'est en effet un peu long. Quand est ta deadline pour rendre ton projet ?
Messages postés
14
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
22 décembre 2010

Je dois le rendre pour début janvier
merci beaucoup de ton aide je ne m'en serait pas sorti tout seul
Messages postés
14
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
22 décembre 2010

Je suis désolé mais j'aurai besoin de savoir si tu va pouvoir m'aider pour traduire les informations que tu m'a donner en vba.
C'est que si tu n'a pas le temps il va falloir que je cherche une autre solution.

Merci encore pour tes réponces
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

Bonjour,
Oui, désolé de ne pas t'avoir répondu plus tôt.
Je viens de récupérer ton fichier excel. Je vais essayer de te le compléter pour fin de semaine prochaine soit le 26/12.
D'ici là, je te tiens au courant de l'avancement.

A +,

Subaqua
Messages postés
14
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
22 décembre 2010

merci beaucoup tu me sauve !
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

Bonjour,
Ci-dessous le lien vers le fichier excel contenant la macro permettant de déterminer les lead time de tous les articles en base.

http://www.cijoint.fr/cjlink.php?file=cj201012/cij7VQstYU.xlsm
Messages postés
14
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
22 décembre 2010

Merci pour ce fichier

Par rappor a se que tu m'a donner, en gros cela permet de classer les produits selon les délai et la nomenclature. Cependant le programme que tu m'a donner ne prend pas compte les quantité si je ne me trompe pas? Je te demande sa pour être sur de ce que tu m'a donner


merci pour ton aide précieuse
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

Oui, en effet, cela permet d'avoir les delais mais ça ne prend pas en compte les volumes. Je viesn de relire ta question et c'est de cela dont tu as besoin. Desole, je suis parti dans mon idee ....
Cependant, ce n'est guere different. Le principe de lister toute la base aussi longtemps qu'il y a des modifs dans la base reste valable.
Je ne vais pas avoir le temps de t'ecrire le code. Je suis a l'etranger et travaille sur deux projets en meme temps.
Voici les elements pour te guider. Côté VBA, tout ce que tu dois utiliser se trouve dans mon fichier. Rien de nouveau.
Il faut créer une feuille "cde_client" dans laquelle on stockera les commandes client. En champs (colonnes), tu crées ref_cde, ref_article,qté,date_livraison,type_cde(0 si cde client, 1 si cde interne).
Tu crées une 2nde feuille "orderbook" qui contiendra toutes les commandes client et internes. Mets les mêmes champs et en plus : CPEC (cde prise en compte, 0 : non , 1 : oui). Une cde interne est une cde que créera VBA lorsqu'il verra un besoin. Ex : article A utilise un composant B. Le client passe une cde de 100 A. Stock A=50. Donc besoin de 50. VBA crée une cde de A en qté 50 (qui sera en fait un ordre de fab.) et créera ensuite une cde d'achat (ou de prod.)de 50 B.
Le code :
1: faire une boucle pour copier les cdes de cde_client dans Orderbook et mettre CPEC à 0. Ne pas oublier de tout effacer dans la table orderbook au préalable.
2: Sur la table base (là où on a tous les articles), on cree un champ stock dispo et on copie le stock actuel de chaque article dans ce champ.
3: boucler "tant que pas FINI"
4: Requête sur la table "Orderbook" : on sélectionne que les cdes avec CPEC=0 (CPEC=1 : elles ont été vues et prises en compte dans les besoins).
Pour chaque cde sélectionnée, on met le CPEC=1 et on regarde si stock dispo-qté cdée>stock mini (ou 0 si pas de stock mini).
Si oui,alors on met à jour le stock dispo : stock dispo - qte cdee et on passe.
Si non, on regarde si l'article a des fils.
Si pas de fils, on crée une cde interne. On mettra le CPEC=0 sur cette nouvelle cde et on met à jour le stock dispo.
Si existence de fils, on met à jour le stock dispo. pour chacun des fils (attention, qté cdée x qté nomenclature). On regarde si stock dispo<0 (ou à stock mini). Si oui, on crée une cde. Sinon, on passe.
On termine la boucle sur orderbook.
Si on ne trouve pas de cde avec CPEC=0, alors on a tout passé en revue donc on met FINI=vrai et tout s'arrêtera. Cela veut dire que si on a trouvé des cdes avec CPEC=0, alors on refait une boucle sur orderbook.
(tant qu'on crée des cdes internes parce qu'il y a des fils, on a des cdes avec CPEC=0 .....)
Bon courage pour l'écriture du code. Ce n'est pas difficile, tu connais toutes les fonctions. Ce sont celles utilisées dans mon fichier.