Excel 2007 - VBA - forward consumption
Hej eksperter,Jeg forsøger lidt amatøragtig, at lave følgende: Table MNL beståer af behov pr. kolonne. Table CMH består af ordre pr. kolonne. Table NET skal så blive MNL minus CMH pr. kolonne, MEN såfremt den er negativ i en kollone skal differencen overføres til næste kolonne og indgå i regnstykke der. Indeværende kolonne sæt til nul. Reglen er dog at der fra en given kolonne MAX må overføres 3 gang.
MNL W1 W2 W3 W4 W5
A 10 10 10 10 10
B 0 0 0 0 0
CMH W1 W2 W3 W4 W5
A 15 0 15 0 0
B 0 0 0 0 0
NET W1 W2 W3 W4 W5
A 0 5 0 5 10
B 0 0 0 0 0
Nedstående kode overfører, men jeg kan ikke find ud af at begrænse det til max 2 gang. Er der skperter der kan det?
Public Sub NetCal()
Dim vMNLArray As Variant
Dim vCMHArray As Variant
Dim vNETArray As Variant
Dim iD1Counter As Integer
Dim iD2Counter As Integer
Dim i, j As Integer
Dim iNetRemainer As Integer 'may be double
Dim iForewardConsumptionWeeks As Integer
vMNLArray = LoadTable(1)
vCMHArray = LoadTable(2)
vNETArray = LoadTable(3)
vNETArray = vMNLArray
Call LoadArray(vNETArray) 'To be removed - only for test
For iD1Counter = 1 To UBound(vMNLArray, 1)
iNetRemainer = 0
For iD2Counter = 2 To UBound(vMNLArray, 2)
vNETArray(iD1Counter, iD2Counter) = vMNLArray(iD1Counter, iD2Counter) - vCMHArray(iD1Counter, iD2Counter) + iNetRemainer
If vNETArray(iD1Counter, iD2Counter) < 0 Then
iNetRemainer = vNETArray(iD1Counter, iD2Counter)
vNETArray(iD1Counter, iD2Counter) = 0
Else
iNetRemainer = 0
End If
Next iD2Counter
Next iD1Counter
Call LoadArray(vNETArray)
Erase vMNLArray
Erase vCMHArray
Erase vNETArray
End Sub