Hallo
Könnte mir bitte jemand bei meinem Problem helfen ?
Dieser unten stehende code hat mir heute schon so einiges Kopfzerbrechen bereitet aber ich
stehe jetzt kurz vor dem Ziel, nachdem ich die Debugfunktion entdeckt habe. Nachdem ich die Meldung
"nicht genügend Stapelspeicher" bekommen habe hat mir der Debugmodus gezeigt, dass er sich bei der Sub packen in eine
Schleife verfangen hat aus der er nicht mehr rauskommt. Nur kann ich nicht sehen warum er da nicht mehr rauskommt.
An den Werten aus der Excel Tabelle kann es meines Achtens nicht liegen. Ich habe für Alle breiten 2 und für alle Anzahlen 5. Er müsste also jedesmal
nach fünf Durchgängen die Schleife wieder verlassen, die Abbruchbedingung ist ja null ! Oder verstehe ich irgendetwas falsch ?
Könnte mir bitte jemand bei meinem Problem helfen ?
Dieser unten stehende code hat mir heute schon so einiges Kopfzerbrechen bereitet aber ich
stehe jetzt kurz vor dem Ziel, nachdem ich die Debugfunktion entdeckt habe. Nachdem ich die Meldung
"nicht genügend Stapelspeicher" bekommen habe hat mir der Debugmodus gezeigt, dass er sich bei der Sub packen in eine
Schleife verfangen hat aus der er nicht mehr rauskommt. Nur kann ich nicht sehen warum er da nicht mehr rauskommt.
An den Werten aus der Excel Tabelle kann es meines Achtens nicht liegen. Ich habe für Alle breiten 2 und für alle Anzahlen 5. Er müsste also jedesmal
nach fünf Durchgängen die Schleife wieder verlassen, die Abbruchbedingung ist ja null ! Oder verstehe ich irgendetwas falsch ?
Visual Basic-Quellcode
- Public Function Kisten()
- Dim rng1 As Range
- Set rng1 = Worksheets("Tabelle1").Range("A1:A10")
- Dim Kistenbreite(1 To 10) As Integer
- Dim r As Range
- For Each r In rng1
- Kistenbreite(r.Row) = r.Value
- Next
- Dim rng As Range
- Set rng = Worksheets("Tabelle1").Range("B1:B10")
- Dim Kistenanzahl(1 To 10) As Integer
- Dim r1 As Range
- For Each r1 In rng
- Kistenanzahl(r1.Row) = r1.Value
- Next
- Dim Hvb As Integer
- Hvb = 0
- Dim x As Integer
- x = Worksheets("Tabelle1").Range("A11").Value
- Dim zahlkisten As Integer
- zahlkisten = Kistenanzahl(0)
- Dim breitekisten As Integer
- breitekisten = Kistenbreite(0)
- Dim a As Integer
- a = 0
- Do
- Call packen(breitekisten, zahlkisten, Hvb)
- a = a + 1
- breitekisten = Kistenbreite(a + 1)
- zahlkisten = Kistenanzahl(a + 1)
- Loop Until Hvb <= x
- MsgBox ("Der Wert ist" & Hvb)
- End Function
- Public Sub packen(Breite As Integer, Anzahl As Integer, d As Integer)
- d = d + Breite
- Anzahl = Anzahl - 1
- Do
- Call packen(Breite, Anzahl, d)
- Loop Until Anzahl = 0
- End Sub