Avatar billede groyk Novice
01. juni 2007 - 12:53 Der er 2 kommentarer og
1 løsning

Save optimering

Hej

Er der nogle der kender til en VB(A) funktion, der kan lave optimering af hvor meget materiale der skal indkøbes?

Jeg får ud fra mit Cad system følgende informationer.

RåvareNr - RåvareLængde - AntalStk. - SaveLængde
1          -  6000        - 10          - 2050
1          -  6000        - 30          - 300
1          -  6000        - 12          - 155
1          -  6000        - 7          - 1586

Det jeg mangler er en funktion der kan beregne hvor mange længder der skal købes hjem. Der skal naturligvis være så lidt spild så mulig.

Der kan være fra 1 til 999 forskellige afsavninger af en råvare.

Skal bruge funktionen sammen med et Excel regneark, så det må meget gerne være VBA.

Håber der er en der kan hjælpe mig på rette spor.
Avatar billede tjacob Juniormester
02. juni 2007 - 10:31 #1
Der findes ikke nogle færdiglavede funktioner, men det er en forholdsvis simpel sag selv at op stille en ligning:

Antal savelængder pr. råvarelængde = X:  råvarelængde/savelængde -i heltal

Nødvendigt antal råvarelængder: AntalStk/X -i heltal (hvis rest ved division lægges 1 til)

Denne formel kan du jo lægge direkte i en celle i regnearket. I min (danske) Excel ser det sådan ud:

Hvis vi antager:  Råvarelængde ligger i kolonne C
                  Antal Stk ligger i kolonne D
                  Savelængde ligger i kolonne E
                  Så kunne du kalde kolonne F for Antal Råvarelængder og lægge formlen der:

Her ligger den i række 4:
HVIS((AFKORT(D4/AFKORT(C4/E4))*AFKORT(C4/E4))<D4;AFKORT(D4/AFKORT(C4/E4))+1;AFKORT(D4/AFKORT(C4/E4)))

Hvis det skal være helt korrekt, så skal du vel også lægge savespor til; så skal alle E4 erstattes af f.eks. (E4+2)
Avatar billede tjacob Juniormester
02. juni 2007 - 10:47 #2
Jeg var vist lidt for hurtig til at svare der........

Den nævnte formel beregner hvor mange råvarelængder der er nødvendig til HVER afsavningslængde FOR SIG SELV. Dvs at der jo godt kan være f.eks. et stykke på 2 meter til overs fra den første savelængde, der så kan bruges til en af de mindre savelængder. -Så bare ignorer mit svar ;)

Hvis der skal optimeres på tværs over flere hundrede forskellige savelængder bliver det straks mere kompliceret. Så skal det laves som en funktion med rekursive loops, der hele tiden finder en savelængde der passer så godt som muligt. Jeg vil forsøge, men det overstiger måske mine evner...........;)
Avatar billede groyk Novice
03. juni 2007 - 10:24 #3
Hej tjacob

Startede selv ud med den metode du nævnte først, Men det giver mig et helt forkert tal når jeg bestiller materialer hjem.

Arbejder selv på en lidt mere simpel løsning end den sidste du nævner, da din sidste løsning klart overskrider mine evner...

Min løsning går ud på at beregne længderne ved at tage det længste emne først, ligge spildet ind i et array og så starte med at bruge det når jeg beregner materiale til det næstlængste emne osv.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester