• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Ligduur berekenen

Status
Niet open voor verdere reacties.

Jeneroy

Gebruiker
Lid geworden
23 jul 2018
Berichten
106
Alle,
Kan iemand mij helpen met een idee hoe ik in Excel de ligduur van stock artikelen kan berekenen.

Ik heb een file bijgevoegd.

Er zijn twee soorten bewegingen:
• Ontvangst : ontvangen van de leverancier
• Verkocht: verkocht aan klant

We hanteren de FiFo methode. First in, First out.

Ik wil de ligduur in kolom I berekenen.
Heeft iemand een idee hoe ik dit kan doen.

Alvast bedankt
 

Bijlagen

hallo Jeneroy, is vba een optie ?

ps het is altijd handig als je vermeld welke excel U gebruikt.
 
er zit een foutje in , ik heb de verbetering wel, maar omdat er toch niet gereageerd wordt laat ik het maar zo.
 
:evil::thumb:...
 
sorry. ik was 2 weken vrij. ik heb net jullie berichten gelezen.
ik gebruik excel 365.
@sylvester-ponte kan je me verder helpen.

Alvast bedankt
 
sylvester-ponte, kan jij de macro code hier plaatsen. ik kan hem namelijk niet zien....de inhoud is geblokkerd. alvast bedankt
 
je schrijft : de inhoud is geblokkeerd. werkt het knopje wel? druk eens op alt f11
Code:
Sub test()
Call Ligduur([D7], [I8])
End Sub
Sub Ligduur(LocatieTabel As Range, LocatieUitvoer As Range)
  Dim Tabel, Rij, Temp, V, Opl, Opl2() As String, T, Rest
  Const Hoeveel = 1, HoeOud = 0
  Tabel = LocatieTabel.CurrentRegion
  ReDim Opl2(LBound(Tabel) To UBound(Tabel) - 1)
  ReDim Opl(1, 1)
  Opl(0, 0) = 1
  Temp = Tabel(UBound(Tabel), 3)
  If Temp <= 0 Then Exit Sub
  Opl(Hoeveel, 1) = Temp
  For Rij = UBound(Tabel) - 1 To 2 Step -1
    Temp = Tabel(Rij, 3)
    GoSub verhoogLigduur
    If Temp > 0 Then
      GoSub voegtoe
    ElseIf Temp < 0 Then
      GoSub trekaf
    End If
  Next
  LocatieUitvoer.Resize(UBound(Opl2)) = WorksheetFunction.Transpose(Opl2)
  Exit Sub
trekaf:
  Rest = -Tabel(Rij, 3)
  For T = Opl(0, 0) To UBound(Opl, 2)
    V = WorksheetFunction.Min(Rest, Opl(Hoeveel, T))
    Opl2(Rij - 1) = Opl2(Rij - 1) & Chr(10) & V & " stuks==> " & Opl(HoeOud, T) & " dagen ligduur"
    Opl(Hoeveel, T) = Opl(Hoeveel, T) - V
    If Opl(Hoeveel, T) = 0 Then Opl(0, 0) = Opl(0, 0) + 1
    Rest = Rest - V
    If Rest = 0 Then: Exit For
  Next
  Opl2(Rij - 1) = Mid(Opl2(Rij - 1), 2)
Return
voegtoe:
  ReDim Preserve Opl(1, UBound(Opl, 2) + 1)
  Opl(Hoeveel, UBound(Opl, 2)) = Tabel(Rij, 3)
Return
verhoogLigduur:
  V = Tabel(Rij, 4) - Tabel(Rij + 1, 4)
  u1 = UBound(Opl)
  u2 = UBound(Opl, 2)
  For T = Opl(0, 0) To UBound(Opl, 2)
    Opl(HoeOud, T) = Opl(HoeOud, T) + V
  Next
Return
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan