Calculs d'optimisation des coupes (solve

  • Initiateur de la discussion Bilou3365
  • Date de début
B

Bilou3365

Guest
Salut tout le monde,
Voilà j'ai un petit problème sous excel, j'aimerai réaliser l'optimisation des découpes dans des tasseaux de bois pour en acheter le moins possible.

ex:Les tasseaux sont vendu par 4m soit 4000mm.
Mes cotes en mm:
2512
850
1564
2150
2540
788
3240
...
Quel est le nombre de tasseaux mini(je ne tiens pas compte de de l'epaisseur de la lame,....)?

Voilà c'est le genre de calcul que j'aimerai faire automatiquement.
Le solveur est-il utile dans ce cas là?Si oui je suis interessé pour savoir comment on fait :woohoo:
S'il y a une autre option je suis aussi preneur.
Pour infos, je travail sur le pack office pro et sur Windows XP sans SP.

Merci d'avance pour votre aide!!
 

21ch181

XLDnaute Junior
Bonsoir Bilou3365,

Ebéniste ? Menuisier ?
J'avoue que c'est aussi ma passion !!

J'espère avoir compris ton problème correctement et voici comment je l'ai résolu :

j'utilise la fonction 'valeur cible' du menu 'outil'.
Auparavant, j'ai créé la feuille comme modèle joint, avec tous les coefficients en colonne C égaux à 1.

Dans la cellule C11 j'ai mis la formule de calcul suivante :
=B9*C9-SOMMEPROD(C1:C7*A1:A7)

Il suffit alors de lancer 'valeur cible', e dans le popup qui s'affiche renseigner comme suit :
Cellule à définir ==> C12 (celle qui contient le calcul de la chute)
Valeur à atteindre ==> 0 (on ne souhaite aucune chute !)
Cellule à modifier ==> le coefficient, nombre de tasseaux de 4000mm

Clic sur OK donne le résultat = 3.411 !!

Si tu avais un nombre de débit différent, par exemple :
2512 2
850 3
1564 1
2150 2
2540 3
788 1
3240 2

Il suffit de corriger la colonne des coefficients de chaque débit pour obtenir 7.0815 tasseaux.

Il ne reste plus que l'affichage du débit de chaque tasseau à calculer et je reviens vers toi !

A bientôt.

Alain [file name=Tasseaux.zip size=1501]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Tasseaux.zip[/file]
 

Pièces jointes

  • Tasseaux.zip
    1.5 KB · Affichages: 350

21ch181

XLDnaute Junior
Bonjour Bilou3365 et le forum,

Arf ! j'ai été un peu rapide car la solution ne fonctionne pas sans coup férir dans tous les cas de figure !

Avec ton exemple c'est OK, je l'avais testée avec d'autres configuration (de nombre de tes longueurs) qui m'avaient donné le résultat correct mais quand le nombre de longeur augmente le résultat n'est plus correct !

Je continue de chercher donc, en macro cette fois !!

A bientot
 
B

Bilou3365

Guest
Merci Alain pour ton aide,
Je ne suis pas menuisier mais je m'intéresse beaucoup à ce milieu car j'adore travailler le bois ;) .

Malheureusement, tu as raison dès que l'on augmente le nombre de cotes , le résultat est incorrect :(.

Encore merci de chercher une solution par les macros
A bientôt.

Olivier
 

21ch181

XLDnaute Junior
Bonsoir Bilou3365

J'ai fait une ébauche qui n'est pas encore tout à fait terminée !
Il manque l'affichage auto du Userform par ex mais je suis fatigué et c'est pour te montrer ce que j'ai déjà fait.

Pour tester il faut lancer le userform et :
1 - saisie des longueur à débiter avec leur quantités
2 - la saisie de 0 et 0 déclenche l'optimisation

le résultat de l'optimisation se trouve dans l'onglet 'débit'

Dis moi ce que tu en penses STP.

A demain

Alain [file name=Tasseaux_20050417232147.zip size=19173]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Tasseaux_20050417232147.zip[/file]
 

Pièces jointes

  • Tasseaux_20050417232147.zip
    18.7 KB · Affichages: 198
B

Bilou3365

Guest
Bonsoir Alain,

J'ai un petit probleme, j'ai lancé userform depuis Visual Basic, j'ai fait la saisie. Mais quand je lui saisie Longueur=0 et quantité =0, il me donne une erreur d'éxécution 11 (Division par zéro) et il pointe cette ligne 'Do While (Int(Sheets('Données').Cells(1, 4) / Adebiter(j, 1) > 1) And Adebiter(j, 3) > 0)' dans Private Sub Valider_Click().

Sinon j'ai regardé la feuille débit et feuille 3 ( des calculs que tu avais fait auparavant), le résultat est vraiment impressionnant :eek:hmy: . T'es programmeur sur excel(VB,VBA)??


A bientôt
Olivier
 

Luki

XLDnaute Accro
Salut les copeaux!

Voici un fil que je vais suivre avec plaisir, car m'étant penché sur le pb il y a fort longtemps sans le résoudre je suis preneur même si par ailleur j'utilise une optimisation des panneaux.

Je n'ai malheureusement pas le temps de plancher( lol! )dessus ces jours ( j'ai une cuisine à terminer et à poser!) mais je suis le fil avec intérêt... merci à vous.


A +
 

21ch181

XLDnaute Junior
Bonsoir à Tous

Je suis heureux que cela vous plaise !!

Je me suis aperçu en effet qu'il subsistait des soucis dans le code VBA !
Je suis dessus en train de chercher les solutions et j'avoue que je galère un 'tchiot peu'. Mais comme cette demande corresponds aussi à un besoin perso j'y arriverais !!

Pour répondre à Bilou3365 : non je ne suis absolument pas programmeur, je me suis mis à VBA par pur plaisir et gout du challenge et, il faut bien le dire, par fainéantise car devoir travailler par répétition comme cela arrive quand on ne maitrise pas les macros, me barbait !

Quand à Luki, je suis presque au même point que toi car ma femme m'a demandé de lui refaire sa cuisine (la combi va tourner !!).

A bientot, j'espère finir ce soir !!

Alain

Nota : le principe que j'utilise pour l'optimisation 1 dimension n'est pas 'mathématiquement' trés évolué mais je l'ai déjà vu utilisé avec succés dans une entreprise de fabrication de .... radiateurs de chauffage central pour optimiser des chaînes d'assemblage automatiques (12 000 rad / jours !). Et aussi simplissime qu'il soit, ce principe nous avait fait gagner un fric monstre à l'époque !!
Maintenant, pour les 'matheux' du forum, si il y en a qui maîtrise la programmation linéaire sous contraintes avec variables discrètes, je veux bien qu'ils se signalent !! Le solveur permettrait de faire mieux (entre autre une optimisation à 2 dimensions mais les seuls souvenirs de programmation linéaire que j'ai remonte à 25 ans (c'était les balbutiements je crois)
 

21ch181

XLDnaute Junior
Bonsoir Bilou3365, Luki et le forum

Bon je suis arrivé à une solution qui me semble opérationnelle.

J'espère qu'elle vous plaira et surtout qu'elle fonctionnera sur vos machines !!

J'y ai apporté une petite amélioration : la longueur du tasseau devient un paramètre modifiable ==> on peut donc faire du débit dans des 'planches' de longueur différente du 4000mm de base.
Cette dernière longueur étant la valeur par défaut.

Sur ma machine tout fonctionne, sans erreur.

Si vous en rencontriez, merçi de me les signaler le plus précisément possible (où et cas de figure), si possible aprés un contrôle de débuggage....

Bien cordialement

Alain [file name=Tasseaux_20050418225609.zip size=31522]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Tasseaux_20050418225609.zip[/file]
 

Pièces jointes

  • Tasseaux_20050418225609.zip
    30.8 KB · Affichages: 376
B

Bilou3365

Guest
Bonsoir tous le monde,

:woohoo: Bravo Alain, j'ai fait 7-8 essais, ça marche nickel sans le moindre bug. En plus la feuille prête à l'impression c'est tout simplement le top.

Quand à l'optimisation des découpes, ça m’a l'air tout à fait correct. La possibilité de faire varier les longueurs est une très bonne idée.

Je l’essaierai plus longtemps demain en rentrant du travail.

Encore Merci et Bravo Alain.
A demain.
Olivier
 

21ch181

XLDnaute Junior
Bonjour,

Trés heureux de vos réactions !
Merçi.

Pour la limite à 10 : pour avoir un controle de saisie et parce que dans la pratique quand on fait un peu de menuiserie, il est assez rare de dépasser ce chiffre !

Pour y pallier 2 solutions :
1- modifier cette limite dans la macro
2- saisir X fois la même longueur par multiple de 10 (ex si 22 longueurs A, saisir 2 fois 10 longueurs A et 1 fois 2 longueurs A ==> il y aura donc 3 lignes de débit à optimiser), la macro fonctionnera.

Je tacherais d'améliorer la présentation des feuilles et je vais introduire la largeur du trait de coupe.

Quand à l'optimisation de surface (à 2 dimensions donc), là c'est une autre paire de manche ! Mes connaissances mathématiques ne sont pas suffisantes pour le moment (voir mon post précédent)

A bientôt donc.

Alain
 

dg62

XLDnaute Barbatruc
Bonjour 21ch181,PascalMou, Bilou3365, Luki, Le forum


Une autre approche



A finaliser en fonction des différentes longueurs




[file name=optitasseaux.zip size=3859]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/optitasseaux.zip[/file]

Message édité par: dg62, à: 19/04/2005 11:14
 

Pièces jointes

  • optitasseaux.zip
    3.8 KB · Affichages: 237

Luki

XLDnaute Accro
Salut le fil et les bricolos,
je suis content de voir que vous avez bossé dur pendant que je dormais du sommeil du juste!

Alain, quand à la limitation à 10, parle pour toi, car pour la fin de la semaine, je fais rentrer 460ml de tasseaux! donc c'est à peu près sur que je vais exploser ton programme lol!

J'ai pas le temps de tester le travail accompli d'ici ce soir. je vous tiens au courant et je donne mon avis ( j'y ai quand même pensé et j'ai une petite idée de ce qu'il me faudrait)

Merci à tous

A+ :silly:
 

21ch181

XLDnaute Junior
Bonjour à tous,

J'ai encore bossé un peu sur la version que j'ai fait :
1- maintenant l'épaisseur du trait de scie est prise en compte,
2- j'ai modifié la limite du nombre maxi de chaque longueur à .... 1000 (ca te convient mieux Luki ?)

Normalement il n'y a pas d'erreur dans les macros. Les puristes trouveront à y redire (peut être pb de déclaration...) et je suis preneur de leurs remarques pour m'améliorer !

Quand à l'optimisation à 2 dim ........ je verrais plus tard !!!

Amusez vous bien
et si vous voyiez d'autres améliorations possibles : à votre bon coeur !!

Alain
[file name=Tasseaux_20050419141509.zip size=31523]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Tasseaux_20050419141509.zip[/file]
 

Pièces jointes

  • Tasseaux_20050419141509.zip
    30.8 KB · Affichages: 370

Membres actuellement en ligne

Statistiques des forums

Discussions
312 472
Messages
2 088 710
Membres
103 930
dernier inscrit
Jibo