Macro avec solveur shunte une des containtes

Bonjour,

une macro doit se lancer lorsqu'on change la valeur de la cellule F4.

La macro sert a lancer le Solveur pour optimiser la palettisation des boites.

j'ai fait la macro en mode apprentissage, elle semble complète, et aussi elle se lance comme souhaitée lorsque la cellule F4 est modifiée.

Seulement elle n'arrive pas à trouver les résultats escomptés attendus dans les cellules u3,v3 et u4,v4.

En lançant le solveur en mode "manuel" après la macro, je m'aperçois qu'une des contraintes n'est pas prise en compte alors qu'elle figure bien dans la macro;

il manque z3<=1 (ou z4=<1).

Et je ne trouve pas ce qui ne va pas.

Ci-joint le fichier.

Merci pour votre aide.

bonjour Palette,

97.5%

image

Bonjour,

Comme sous-entendu par @BsAlv il existe des solutions performantes en ligne. Pour ce qui est de votre fichier, je pense que vous devriez nettoyer votre projet VBA :

On a des subs de worksheet dans des modules, plusieurs subs avec le même nom, des subs dans des subs… C'est le chaos et ça ne m'étonnerai pas que le problème vienne de là.

De plus faites très attention aux évènements worksheet_change quand vous lancez le solver, ils vont se déclencher à chaque itération.

Bonjour Palette, alut saboh12617,

je n'essaie plus à résoudre le "2D-cutting problem" avec Solveur, trop compliqué ... .

J'utilise le site https://www.opticutter.com/cut-list-optimizer

Là, j'ai pris les mesures 1200*800 de votre palette comme source et 92*72 pour vos boîtes et il m'ai fait ce résultat, presque instantané. Je suppose que votre problème ne se répète pas et donc une solution manuelle suffit ?

merci de vous être penché sur mon problème et pour vos retours & conseils.

je suis absolument novice en VBA, je tâtonne et devine mais sans maitriser.

j'ai fait le ménage dans les macros mais ça ne change rien, elle ne s'exécute pas correctement

quelqu'un peut-il me dire ce qui ne va pas? ou corriger le code?

merci par avance.

je ne comprends pas votre modèle.

Voir feuille "Blad1", modèle pour un niveau 1200*800 pour une boite 97*72 = 134 boites par niveau * 15 niveaus = 2010 boites par palette

Puis feuille "blad2", j'avais fait ce truc avec 97*70 et 72*70, (avec opticutter), cela me donnait ce nombre dans la colonne E, multiplié avec la colonne F, donnait le nombre par palette.

le meilleur choix est donc le 97*72 avec 2.010 boites.

Mais si on fait une optimalisation dans l'hauteur avec ces 3 solutions, si on prend 4 niveaux de 97*72 et 8 niveaux de 72*70, on aura 2.032 (+22) boites par palette et 98% du volume de la palette.

image image

oui, vous optimisez dans la 3eme dimension à savoir la hauteur; pour l'instant je ne l'ai pas envisagé; ça complique un peu plus les instructions de manutention.

mais je vais y songer.

(1870 est le résultat que vous trouvez en ligne 9 de l'onglet palettisation)

Mais tout ça ne me dit pas pourquoi je n'arrive pas à automatiser le solveur avec une macro.

sans vba, votre modèle, a-t-elle trouvé une solution ? Je ne pense pas ...

Prenez ma feuille "Blad1" et au lieu d'une RAZ du solveur, juste échanger les dimnsions largeur, longueur et hauteur. Mais savez que je préfère utiliser ce site au lieu de solveur.

nouvelle méthode :

si on a 3 dimensions (largeur, longueur, hauteur) on a 6 permutations de 2 dès 3 dimensions, c'est comme si on met la palette chaque fois sur une autre côté. C'est ce qu'on fait avec la palette et avec la boîte, donc cela donnera 6*6 = ces 36 lignes du tableau dans la feuille "blad2"

"Blad1", on choisit la palette et la boîte n A1:A2 et on pousse le bouton. La macro fait ces 36 possibilités décrit ici dessus et fait une optimalisation avec solveur pour savoir le nombre de boîtes sur 1 niveau et écrit le résultat dans le tableau de la feuille "Blad2". Puis dans la feuille "Blad2" (autre feuille pour ne pas devoir récrire le modèle solveur, on ne peut pas avoir plusieurs modèles sur une feuille), pour chaque permutation de la palette, on fait une optimalisation des hauteurs dès 6 permutations des boîtes et on choisit la meilleur solution.

Rechercher des sujets similaires à "macro solveur shunte containtes"