Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel VBA schleife, Bedingungen stimmen nicht

Excel VBA schleife, Bedingungen stimmen nicht
12.10.2014 12:26:20
Maurice
Guten morgen,
ich habe ein Problem mit meinem Excel Makro. Ich muss eine schleife basteln, die eine händische "Stückelung" vollbringen soll. Sinn und Zweck der Sache ist ein Sägelistenmakro, das mir genau sagt wieviel ich bestellen muss, und welche Position ich aus welchem Stab sägen muss damit ich am Ende so wenig Verschnitt wie möglich habe.
Das problem das ich habe, ist das die Schleifenbedienungen nicht stimmen und ich ehrlich gesagt nicht mehr dahinter komme was ich falsch mache. mal funktioniert das Programm, mal nicht. Alles sehr komisch.
Das Programm fängt bei mir einer definierten maximallänge an, und schaut in der Tabelle, was er sägen kann. wenn etwas passt, "sägt" er es ab, und zählt die Stückzahl runter. Wenn eins nicht mehr passt, schaut er ob es was kürzeres gibt und ob man das nicht sägen kann. Wenn aber alles zu lang ist, aber noch Sachen zu sägen sind, soll er mit einem neuen Stab anfangen, in dem fall soll er natürlich wieder bei den längsten anfangen (sind der länge nach sortiert)
Der Code schaut wie folgt aus :
Dim längenew As Single
Dim Stückzahl As Integer
Dim Stückzahl_schleife As Integer
Dim Mitschreiber As String
Dim Stabzähler As Integer
Dim Reststück As Single
längenew = länge
Mitschreiber = "Stab " & Stabzähler & " :" & vbCrLf
For erstezeile = 7 To letztezeile
Do
If Cells(erstezeile, 3) + Schnittfugenbreite < längenew And Cells(erstezeile, 6) > 0 Then
längenew = längenew - Cells(erstezeile, 3) - Schnittfugenbreite
Mitschreiber = Mitschreiber & "Position " & Cells(erstezeile, 1) & ", "
'Msgbox ("Länge" & längenew & "Schritte" & Schritte)
Cells(erstezeile, 6) = Cells(erstezeile, 6) - 1
Else
erstezeile = erstezeile + 1
End If
Loop Until Cells(erstezeile, 6) = 0
If erstezeile = letztezeile And Application.WorksheetFunction.Sum(ActiveSheet.Range(Cells(7, 6), Cells(letztezeile, 7))) > 0 Then
Reststück = längenew
längenew = länge
Stabzähler = Stabzähler + 1
Mitschreiber = Mitschreiber & "Restlänge : " & Reststück & vbCrLf & vbCrLf & "Stab " & Stabzähler & " : " & vbCrLf
erstezeile = 7
End If
Next erstezeile
Vielen Dank schön mal :)

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
In diesem Fall...
12.10.2014 13:14:27
{Boris}
Hi Maurice,
...wäre es sicherlich hilfreich, Deine Datei zu kennen. Vielleicht kannst Du sie ja mal hochladen.
VG, Boris

Zuschnittproblem - Cutting stock - Excel-Solver
12.10.2014 13:30:38
Christian
Hallo Maurice,
Sägelistenmakro, das mir genau sagt wieviel ich bestellen muss, und welche Position ich aus welchem Stab sägen muss damit ich am Ende so wenig Verschnitt wie möglich habe.
Ohne jetzt deinen Code-Schnipsel näher betrachtet zu haben, handelt es sich hierbei um ein klassisches Optimierungs-Problem - schau mal bei Google unter "cutting stock problem" oder "eindimensionales Zuschnittproblem"
Hierzu gibt es verschiedene mathematische Ansätze wie zB. Simplex-Verfahren, Newton, ...
Für eine Lösung mit Excel schlage ich vor:
Erstelle (per vba) bei gegebener Stablänge für die gesuchten Zuschnitte alle möglichen Kombinationen.
Daraus ergibt sich ein lineares Gleichungssystem.
Dieses Gleichungssystem kannst du in Excel dann (bis max 200 Gleichungen) mit dem Excel-Solver lösen.
Grüße
Christian

Anzeige
AW: Excel VBA schleife, Bedingungen stimmen nicht
12.10.2014 14:35:57
Maurice
Hey, danke für eure schnellen Antworten.
Christian: Ich muss sagen, du machst mir ein wenig angst damit. Das ganze sollte doch nur ein Makro für einen Freund werden, der fragte ob das machbar ist. Der hat es die letzten 30 Jahre so gerechnet, und ist noch nicht pleite, daher denke ich dass diese Optimierung sicherlich für die Großindustrie hilfreich ist, in meinem Fall eines mittelständischen 5Mann Betriebes jedoch eher mit Kanonen auf Spatzen geschossen ist. Ich habe jetzt mal die besagte Excel Datei angehängt, damit ihr euch ein besseres Bild machen könnt.
https://www.herber.de/bbs/user/93122.xlsm

Anzeige
AW: Excel VBA schleife, Bedingungen stimmen nicht
12.10.2014 14:46:36
{Boris}
Hi,
also ich fänd`s zielführend, wenn Du in der Datei mal genau beschreibst, was Du wie genau rechnen möchtest (mit manuellem Lösungsweg).
Aber vielleicht haben andere da ja nen besseren Blick drauf als ich.
VG, Boris

AW: Excel VBA schleife, Bedingungen stimmen nicht
12.10.2014 15:05:04
Maurice
So ich habe den Code an der Stelle der schleife mal kommentiert, ich hoffe es hilft euch :)
https://www.herber.de/bbs/user/93123.xlsm

AW: Excel VBA schleife, Bedingungen stimmen nicht
14.10.2014 23:57:14
Christian
Hallo Maurice,
ich war die letzten Tage unterwegs, daher mein Antwort etwas verspätet.
Für die "Großindustrie" ist eine Lösung per Excel-Makro sicher nicht geeignet, die nutzen dafür Großrechner und professionelle Software.
Aber warum sollte ein 5-Mann Betrieb nicht versuchen, Material und Zeit zu optimieren? Da könnte der zuvor beschriebene Ablauf durchaus hilfreich sein.
Denn gleichzeitig versuchst du in deinen Tabellen Gehrungswinkel und Schnittbreite zu berücksichtigen ... das wird bei deinem Level " Basiskenntnisse in VBA" sicher eine zusätzliche Herausforderung.
Aber bleiben wir mal bei den Basics "Zuschnittproblem":
Ich hab mir deinen Code jetzt nicht näher angeschaut (da sind viel zu viele Hieroglyphen drin - verzichte auf Umlaute, vba spricht englisch):
Userbild
Aber schau dir als Alternative zu oben beschriebenen Ablauf mal bei Wiki oder Google den Alorithmus "First Fit" an.
"First Fit" lässt sich in Excel-VBA ohne Solver umsetzen - je nach Voraussetzung ist der "Abfall" um Faktor 3 bis Faktor X höher als bei der Solver-Lösung.
Grüße
Christian

Anzeige
AW: Excel VBA schleife, Bedingungen stimmen nicht
15.10.2014 08:20:22
Maurice
Hey,
danke für den Tipp, werde mich die Tage mal darüber schlau machen, was das ist und wie ich das implementieren könnte.
Zu den Umlauten, vielleicht liegt es daran das ich auf Mac arbeite, aber bei mir stehen die Umlaute ganz normal da. Werde das bei lust und Laune auch ändern.
Die Schnittfugenbreite war nicht das Problem, die wird ja einfach mit abgezogen. Die Gehrung, ja, das ist auch so eine Sache. Das sollte in der 2ten Version implementiert werden, und dient momentan nur als Platzhalter. Leider habe ich momentan noch nicht mal eine Idee, wie ich die Sache überhaupt angehen soll :D
Gruß
Maurice

Anzeige
AW: Excel VBA schleife, Bedingungen stimmen nicht
15.10.2014 09:54:50
Christian
Hi,
wenn ich heute Abend etwas Zeit habe, kann ich dir ein Bsp. für FirstFit zusammen bauen.
Versprechen kann ich es noch nicht.
Gruß
Christian

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige