XL 2013 Calcul nombre de panneaux/tôles pour couverture surface

Leguyl

XLDnaute Occasionnel
Bonjour à tou(te)s.

Je recherche une solution pour calculer à l'aide d'Excel le nombre de panneaux de bois/tôles alu à découper pour couvrir des dessus de murs. Les tôles et panneaux mesurent chacun 2,50 m x 1,50 m. La largeur n'excédera jamais celle d'une tôle, càd 1,50 m, par contre pas de limite de longueur.

Par exemple, si on me demande 19 m x 60 cm + 35 m x 85 cm + 24 m x 36 cm + .... quelle formule utiliser pour commander le nombre adéquat de panneaux/tôles avec le moins de perte possible ?

Solution VBA, bienvenue également.

Merci d'avance.
 

Leguyl

XLDnaute Occasionnel
Bonsoir,

J'ai créé un nouveau fichier et adapté le code pour supporter le calcul pour 10 murs. J'aimerais lancer le calcul dans la feuille "Calculs" depuis le bouton situé dans la feuille "Entrées" mais je suis un perdu, je ne sais plus trop comment m'y prendre.
 

Pièces jointes

  • Tôles.xlsm
    50.5 KB · Affichages: 18

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
En PJ un essai.
1- Il y avait pas mal de choses à reprendre, dont une règle fondamentale: lorsqu'on gère plusieurs feuilles il est indispensable de dire au VBA sur quelle feuille on bosse ( par ex avec un With Sheets("Calculs") ... End with ) sinon il bosse par défaut sur la feuille courante.
2- C'est sympa d'avoir fait le plus ingrat ( For For For ... ). Avec 10 murs il aurait été plus judicieux de passer par des matrices, mais comme le squelette était en place, j'ai préféré le conserver et continuer avec. Le temps n'est pas rédhibitoire. Avec votre exemple de 10 murs, mon PC calcule tout en 1.2s.
3- Si la PJ est concluante, vous pourriez continuer. Avec le prix d'une tôle, le temps d'une découpe, le temps de pose d'une plaque, le prix des supports, le prix de revente des déchets .... on pourrait arriver à un premier jet devis indicatif complet en automatique.
4- A noter que l'outil ne donne pas la découpe dans la longueur. A voir si utile et comment le présenter. ( si un mur fait 5m avec des tôles de 3m, il y aura une découpe de la seconde tôle à 1m. Mais il faut alors tenir compte des joints de dilatation )
A vous lire après test.
 

Pièces jointes

  • Tôles(V6).xlsm
    69.8 KB · Affichages: 7

Leguyl

XLDnaute Occasionnel
Bonjour,

Une fois de plus, merci beaucoup pour votre aide, sylvanu.

Il est, en effet, bien prévu d'ajouter le prix des tôles, des supports et de la visserie, le temps de découpe, soudure et de pose et d'autres choses. C'était surtout l'optimisation du nombre de tôles à utiliser sur laquelle je bloquais et vous m'avez vraiment été d'une aide précieuse pour cela.

Après test, juste un petit souci, j'obtiens le message "Erreur d'exécution '13': incompatibilité de type" si j'entre les données pour moins de 10 murs. Le VBA s'arrête sur cette ligne :

VB:
MaxDécoupes = MaxDécoupes + Cells(5 + N, "G")

Pour le reste, c'est juste impeccable.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
OUPS ! Il y a un bug de taille. Il y a quelquefois des tôles en trop.
En fait il rajoute des découpes pour minimiser les déchets. :eek:

La V8 est corrigée. Mais ça va nettement moins vite.
Les 10 murs du post #17 prennent 298s. Cependant ça reste plus rapide qu'à la main. :)
( ce qui est plus près de ce que j'attendais au départ vu le nombre de boucles qu'il a à faire. )
 

Pièces jointes

  • Tôles(V8).xlsm
    71.3 KB · Affichages: 14

Leguyl

XLDnaute Occasionnel
Voila, j'ai fait des tests sur mon PC qui commence à dater, un i7 860 avec 6 Go de RAM.

En effet, ça va nettement moins vite. Et si le temps de calcul est relativement rapide jusqu'à 5 murs et correct jusqu'à 7 ou 8 , au delà, ça se gâte vachement :

1 mur : 0,07 s
2 murs : 0,098 s
3 murs : 0,508 s
4 murs : 1,238 s
5 murs : 4,055 s
6 murs : 15,223 s
7 murs : 43,758 s
8 murs : 87,336 s
9 murs : 240,938 s
10 murs : 666,922 s

... mais c'est déjà bien mieux que de tout calculer soi même. Merci sylvanu ;)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Avec 10 murs et la possibilité de mettre 4 morceaux par tôles ça fait un million de cycle par tôle.
On peut utiliser les "restes" s'ils ont tous la même taille en lançant un calcul avec une largeur différente.
J'ai cherché un algo plus performant, mais à chaque fois les restes ne ont jamais optimisés. Alors 600s pour gagner une plaque, ça vaut le coup.
 

Statistiques des forums

Discussions
312 294
Messages
2 086 928
Membres
103 404
dernier inscrit
sultan87