Hallo,
wenn ich mein Sub ausführe (aufgerufen aus Userform heraus), dann bricht er erst zweimal, bevor er beim dritten Durchlauf funktioniert:
1. Ein bestimmter Bereich einer Tabelle soll gelöscht werden, das wird noch gemacht und dann beendet sich das Makro von selbst
2. Im zweiten Durchlauf schafft es VBA bis zum Sub warenwertrechnung (Siehe code), wo sich aber das Makro von selbst in dem Moment beendet, wo Werte ich die Tabelle eingetragen werden sollen
3. Im dritten Durchlauf, also genau der gleiche Code wird erneut durchlaufen,...da funktioniert es einwandfrei.
Kann mir jemand von Euch helfen und sagen, woran das liegen könnte?
Für den zweiten Durchlauf habe ich mal die Eintragungen in LK.cells(...) weggelassen und dann ging es...aber das hilft mir bisher nicht weiter
Option Explicit
Private zk1 as integer, zk2 as integer, zk3 as integer
Private LKCONT As Worksheet, LK As Worksheet, VORLAUF as Worksheet
private logket as integer
private artikel as double, ekpreis as double, kartons as double, eqh as double
Public Sub kostenermittlungssteuerung(logket)
Set LKCONT = Workbooks("4 Mengensimulation").Worksheets("C-LK" & logket)
Set LK = Workbooks("4 Mengensimulation").Worksheets("LK" & logket)
LKCONT.Activate
Range(Cells(3, 19), Cells(10000, 60)).Clear '!!!! Abbruch beim 1.Durchlauf!!!!
zk1 = 3
Do
warenwertrechnung zk1, logket
'.... Public Sub warenwertrechnung(zk1, logket)
Set LK = Workbooks("4 Mengensimulation").Worksheets("LK" & logket)
Set VORLAUF = Workbooks("3 Parameter").Worksheets("K-VL")
Set LKCONT = Workbooks("4 Mengensimulation").Worksheets("C-LK" & logket)
zk9 = 2
Do
zk9 = zk9 + 1
Loop Until LK.Cells(zk9, 48) = LKCONT.Cells(zk1, 1)
zk2 = zk9
Do
ekpreis = LK.Cells(zk2, 3)
artikel = LK.Cells(zk2, 10)
kartons = LK.Cells(zk2, 11)
zk3 = 1
Do
zk3 = zk3 + 1
Loop Until VORLAUF.Cells(zk3, 1) = 300
If LK.Cells(zk2, 16) > 0 Then
eqh = VORLAUF.Cells(zk3 + 3, 4)
Else
eqh = VORLAUF.Cells(zk3 + 4, 4)
End If
LK.Cells(zk2, 51) = ekpreis * eqh '!!!! Abbruch beim 2.Durchlauf!!!!
LK.Cells(zk2, 52) = ekpreis * artikel * kartons
LK.Cells(zk2, 53) = LK.Cells(zk2, 52) * eqh
warenwert = LKCONT.Cells(zk1, 19)
warenwert = warenwert + ekpreis * artikel * kartons
LKCONT.Cells(zk1, 19) = warenwert
zk2 = zk2 + 1
Loop While LK.Cells(zk2 - 1, 48) = LK.Cells(zk2, 48)
End Sub
'... |