- Katılım
- 28 Kasım 2007
- Mesajlar
- 919
- Excel Vers. ve Dili
- Office 2010 İngilizce
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
=DDB($C$2;100;5;B2;2)
=ÇİFTAZALANBAKİYE($C$2;100;5;B2;2)
Function Amortisman(AlisTarihi As Date, Maliyet As Currency, Oran As Single, _
Kist As Boolean, Normal As Boolean, Hizli As Boolean, HesaplanacakYil As Integer) As Currency
sure = (Year(AlisTarihi) - 1) + (1 / Oran)
If HesaplanacakYil > sure Then Exit Function
'Normal
If Kist = False And Normal = True And Hizli = False Then
Amortisman = Round((Maliyet * Oran), 2)
End If
'Kıst-Normal
If Kist = True And Normal = True And Hizli = False Then
KistKatsayi = 13 - (Month(AlisTarihi))
If HesaplanacakYil = sure Then KistKatsayi = 12 + (12 - KistKatsayi)
If HesaplanacakYil <> Year(AlisTarihi) And HesaplanacakYil <> sure Then KistKatsayi = 12
Amortisman = Round((Maliyet * Oran) / 12 * KistKatsayi, 2)
End If
'Hızlı-Normal
If Kist = False And Normal = True And Hizli = True Then
If Oran > 0.25 Then Oran = 0.25
Oran = Oran * 2
Donem = (sure - Year(AlisTarihi))
DonemSayaci = 0
alıs = sure - Donem
For byt = alıs To sure
Amortisman = Round((Maliyet * (1 - Oran) ^ DonemSayaci) * Oran, 2)
If DonemSayaci <> Donem Then DonemSayaci = DonemSayaci + 1
biriktir = Amortisman + biriktir
If alıs = HesaplanacakYil Then Exit Function
If DonemSayaci = Donem Then
Amortisman = Maliyet - biriktir
Exit Function
End If
alıs = alıs + 1
Next byt
End If
'Hızlı-Kıst
If Kist = True And Normal = False And Hizli = True Then
If Oran > 0.25 Then Oran = 0.25
Oran = Oran * 2
If HesaplanacakYil = Year(AlisTarihi) Then
KistKatsayi = 13 - (Month(AlisTarihi))
Amortisman = Round((Maliyet * Oran) / 12 * KistKatsayi, 2)
Exit Function
End If
If HesaplanacakYil <> Year(AlisTarihi) And HesaplanacakYil <> sure Then KistKatsayi = 12
KistKatsayi2 = 13 - (Month(AlisTarihi))
Amortisman2 = Round((Maliyet * Oran) / 12 * KistKatsayi2, 2)
Maliyet2 = Maliyet - Amortisman2
Donem = (HesaplanacakYil - Year(AlisTarihi)) - 1
If sure <> HesaplanacakYil Then
Amortisman = Round((Maliyet2 * (1 - Oran) ^ Donem) * Oran, 2)
ElseIf sure = HesaplanacakYil Then
sure = sure - 1
For byt = Year(AlisTarihi) To sure - 1
Donem = (sure - Year(AlisTarihi)) - 1
sure = sure - 1
Amortisman = Amortisman + Round((Maliyet2 * (1 - Oran) ^ Donem) * Oran, 2)
Next byt
Amortisman = Maliyet - Amortisman - Amortisman2
End If
End If
End Function

Function KistAmortisman(Maliyet As Double, HurdaDegeri As Double, Omur As Double, KullanimAylari As Double) As Double
Dim YillikAmortisman As Double
Dim AylikAmortisman As Double
' Yıllık amortismanı hesapla
YillikAmortisman = (Maliyet - HurdaDegeri) / Omur
' Aylık amortismanı hesapla
AylikAmortisman = YillikAmortisman / 12
' Kıst amortismanı hesapla
KistAmortisman = AylikAmortisman * KullanimAylari
End Function
Function HizlandirilmisAmortisman(Maliyet As Double, HurdaDegeri As Double, Omur As Double, Donem As Double) As Double
Dim AmortismanOrani As Double
Dim KalanDeger As Double
' Amortisman oranını hesapla
AmortismanOrani = (2 / Omur)
' Kalan değeri hesapla
KalanDeger = Maliyet
' Her dönem için amortismanı hesapla
For i = 1 To Donem
If i = Donem Then
HizlandirilmisAmortisman = KalanDeger * AmortismanOrani
Else
KalanDeger = KalanDeger - (KalanDeger * AmortismanOrani)
End If
Next i
End Function