Avatar billede i865 Nybegynder
25. april 2012 - 09:07

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
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester