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 :)