Calcul Inverse

Bonjour, existe t-il un moyen pour avoir plusieurs solutions d'assemblage avec des conditions ?

Je m'explique, afin je vais essayer :

Pour de la fabrication de tasseaux, j'ai 3 hauteurs possibles pour le produit fini (76 mm, 78 mm et 80 mm) et 7 types d’épaisseurs différentes d'assemblage pour obtenir la bonne hauteur (8 mm, 12 mm, 16 mm, 19 mm, 22 mm, 25 mm et 30 mm).

Est-il possible qu'excel me sorte toutes les possibilités d'assemblage (par ex : 1 panneau de 30 mm et 2 panneau de 25 mm) par rapport à une livraison de matière première d'épaisseurs différentes.

Merci beaucoup par avance de l'aide apportée,

cordialement

Bonjour,

Un essai. A voir et vérifier la validité...

Cela reste à améliorer... L'amélioration principale consisterait à remplacer les 9 procédures calculant les assemblages de 2 à 10 éléments par une seule faisant le même travail... mais rien que l'idée d'y penser me fiche mal au crâne ! Ça attendra donc !

Cordialement.

NB- Je n'ai pas pour habitude de fournir un classeur lorsque le demandeur n'en fournit pas un au départ. C'est donc tout à fait exceptionnel, compte tenu de la nature de la question.

10assemblages.xlsm (35.24 Ko)

Bonjour à tous,

Salut MFerrand,

N'ayant pas très bien compris son besoin j'ai regardé ton fichier pour voir ce que toi tu avais compris.

J'ai donc sélectionné qq valeurs au hasard dans tes box et j'ai eu Div/0 à nmax = hc \ epu(UBound(epu))

Bon, c'était peut-être voulu de ne pas se prendre trop la tête avec les gestions d'erreurs au début mais je voulais t'en faire part

eric

Salut Eric !

Merci de ton intérêt.

Je me précoccupe en principe de sortir (au plus simple) des erreurs potentielles que je détecte...

Il y en a bien une que j'ai eue mais que j'ai délaissée car je ne suis pas arrivé à la reproduire !

Si tu peux me dire comment tu obtiens la tienne... ?

Les erreurs que j'ai traitées sont d'une part le clic sur Annuler dans l'inputBox (en sortant de la procédure) et les cas où je n'ai pas de traitement en place (en redimensionnant le tableau résultat à 0, qui sert de test).

Cordialement.

Oulalaaa. Ouf, j'ai réussi à reproduire

Par exemple 76, puis 8-12 et 19

La question que je me posais c'était est-ce qu'il faut tenir compte d'un stock initial : ...par rapport à une livraison de matière première d'épaisseurs différentes.. Ce qui diminue les possibilités.

Ah ! Ça, je me suis bien dit qu'un des souci de l'intéressé pouvait être l'utilisation optimale de son stock... mais je suis resté centré sur la question: sortir les combinaisons d'épaisseurs pour atteindre une hauteur donnée.

A partir de là, il peut voir... Cela peut faire l'objet d'une autre question mais cela risque d'être un peu plus compliqué.

Il faut alors mieux cerner l'objectif...

J'avais juste encadré le calcul de combinaisons de la possibilité de faire varier le nombre de hauteur recherchées et le nombre d'épaisseurs d'éléments unitaires.

Avec 76 et 8 - 12 - 19, je n'ai pas d'erreurs ! Mais je sélectionnes une plage de 3 cellules contiguës contenant ces 3 nombres. La sélection d'une plage multizones n'est pas prévue ! Je peux le cas échéant tester et faire recommencer la saisie dans ce cas !

Mais c'est tout de même marginal !

Il y avait par contre une anomalie (non bloquante) si annulation à la 2e saisie : la procédure se pouvrsuivait et se soldait par un message qu'elle ne pouvait calculer avec 1 épaisseur. Pour l'éliminer, il faut ramener la variable plage à Nothing entre les deux saisies.

Ah.

Sans modop je pensais que c'était pour pouvoir choisir certaines épaisseurs.

Donc je n'ai rien dit

le modop était implicite

Merci MFerrand,

désolé de ne pas avoir répondu avant, il y a eu quelques soucis internet dans mon secteur...

Je viens de tester votre fichier et ça correspond tout à fait à mes besoins en terme de gestion des stocks et de production.

Par contre, quand je selectionne la plage de hauteurs des produits fini et que je selectionne 3 dimensions possibles suivant le stock, par exemple 8,12,19, j'ai un erreur exécution 11, div0.

Merci encore énormément,

cordialement

... Je n'avais pas tout lu mais la hauteur du produit fini se situe en 75 et 80 par tranche de 1 mm mais ça fonctionne en rajoutant des cellules et en sélectionnant la plage complète de cellules mais j'ai toujours la même erreur par partir du moment où je ne sélectionne pas de cellules contiguës, par exemple 12, 16 ça fonctionne mais 12, 19 erreur exécution 11.

Voir plus haut ma discussion avec Eric !

J'ai choisi d'opérer par sélections de plages, car cela paraissait plus commmode pour l'utilisateur, il lui suffit de modifier les valeurs dans des plages qu'il sélectionne au démarrage. La contrainte est légère. Comme il faut un moyen de passer les données à traiter, celui-ci limite à 2 passages (hauteurs à obtenir, épaisseurs unitaires)...

Les plages prises en compte sont des plages de cellules contiguës. Ce qui laisse le moins de possibilités d'erreurs à l'utilisateur... Las plages discontinues (ou multizones selon l'appellation officielle) ne sont pas prises en compte.

Je ne teste pas si la sélection est discontinue, donc dans ce cas les valeurs prises en considération par la procédure peuvent ne pas être celles auxquelles l'utilisateur s'attend... D'où résultat incomplet ou erreur...

Partant de l'idée que lors de la sélection, l'utilisateur ne touchait pas au clavier, la sélection ne pouvait être qu'une plage continue !

Je peux tester ! Mais dans ce cas, ce sera en utilisant une boucle bloquant l'utilisateur sur la sélection ("Sélection non conforme. Opérer une sélection valide.") tant qu'il n'opère pas comme prévu !

Cordialement.

Complément

Eric a une solution simple et fonctionnelle à proposer sur cet aspect... Je lui laisse le soin de le faire !

Bonjour à tous,

Je me suis donc permis de modifier légèrement la proposition de MFerrand (qui fait 99% du boulot) pour traiter les sélections multiples.

Tu peux le faire dans les 2 boites, regarde si ça te va.

eric

6assemblages.xlsm (42.04 Ko)

Eriic et MFerrand,

merci énormément ça fonctionne parfaitement suivant les besoins et l'utilisation que les utilisateurs vont en faire

Merci merci )

Rechercher des sujets similaires à "calcul inverse"