Mam prośbę o przekonwertowanie poniższego makra które działa w Excel. Nie jestem informatykiem (jestem ekonomistą) i komunikaty wydawane przez OO. są poza moim zasięgiem. Makro to nic innego jak funkcja FIFO tu wykorzystywana dla obliczania różnic kursowych od własnych środków walutowych na rachunku bankowym wg zasady pierwsze weszło pierwsze wyszło. Z góry dziękuje za pomoc.
Kod: Zaznacz cały
Function Fifo_fx(n, zakres_dt, zakres_cr, zakres_kurs)
wyplyw_rozliczany = zakres_cr(n)
wplyw_rozliczany = 0
suma_wyplywy = 0
For x = 1 To n - 1
suma_wyplywy = suma_wyplywy + zakres_cr(x)
Next x
fifo_kurs = 0
fifo_suma = 0
suma_wplywy = 0
For y = 1 To n - 1
suma_wplywy = suma_wplywy + zakres_dt(y)
If (suma_wplywy > suma_wyplywy And fifo_suma < zakres_cr(n)) Then
If (suma_wplywy - suma_wyplywy) >= zakres_dt(y) Then
If zakres_dt(y) > (zakres_cr(n) - fifo_suma) Then
fifo_kurs = fifo_kurs + (zakres_cr(n) - fifo_suma) * zakres_kurs(y)
fifo_suma = zakres_cr(n)
Else
fifo_kurs = fifo_kurs + zakres_dt(y) * zakres_kurs(y)
fifo_suma = fifo_suma + zakres_dt(y)
End If
Else
If (suma_wplywy - suma_wyplywy) > (zakres_cr(n) - fifo_suma) Then
fifo_kurs = fifo_kurs + (zakres_cr(n) - fifo_suma) * zakres_kurs(y)
fifo_suma = zakres_cr(n)
Else
fifo_kurs = fifo_kurs + (suma_wplywy - suma_wyplywy - fifo_suma) * zakres_kurs(y)
fifo_suma = (suma_wplywy - suma_wyplywy)
End If
End If
End If
Next y
If zakres_cr(n) > 0 Then
Fifo_fx = fifo_kurs / fifo_suma
Else
Fifo_fx = 0
End If
End Function
Sub fifofx()
End Sub