Soru Faiz Hesaplama Kodundaki Hata Nedeni

  • Konuyu başlatan Konuyu başlatan mars2
  • Başlangıç tarihi Başlangıç tarihi

mars2

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
İyi Günler;

Aşağıdaki kodu module kayıt ettikten sonra, excel çalışma sayfasının

D7 hücresine anapara
D8 hücresinde başlangıç tarihi
D9 hücresinde bitiş tarihi
D10 hücresinde faiz oranı yazmaktayım.

D11 hücresien ise =hesapla(D7;D8;D9;D10) yazdığımda kod çalışmamakta, bu uygulamada bende mi hata yoksa kodda mı hata bulunmaktadır.
ekli ekran görüntüsü ile hata vermektedir.

Sub hesapla()

k = 4

Do While Cells(k, 7) <> ""
tutar = Cells(k, 7)
bastar = Cells(k, 8)
sontar = Cells(k, 9)
tmpbastar = bastar
j = 4
faiz = 0
devam = True
Do Until devam = False
faiztar = Cells(j, 3)
If Cells(j, 3) = "" Or faiztar > sontar Then faiztar = sontar: devam = False
If bastar > faiztar Then GoTo 20
faizor = Cells(j - 1, 4)
faiz = faiz + ((faiztar - tmpbastar) * tutar * faizor) / 36500
tmpbastar = faiztar
20
j = j + 1
Loop
Cells(k, 10) = faiz
k = k + 1: faiz = 0
Loop

End Sub

Diğer taraftan Ömer üstat
aşağıdaki kodu çalışmaktadır.

Function hesapla(tutar As Currency, bas As Date, bit As Date, oran As Double) As Currency
Application.Volatile
If bas > bit Then: hesapla = 0: Exit Function
hesapla = (bit - bas + 1) * oran * tutar / 365
End Function
 
Merhaba @mars2

Bu işlem için böyle uzun kodlamaya gerek yom bence.

Şu KTF (UDF-Kullanıcı Tanımlı Fonksiyon) kodlarını, uygun bir MODULE yapıştırın.
Belirttiğiniz formülü hücreye uygulayın.

Dikkat: Faiz oranının ilgili hücreye %5 gibi değil, 5 gibi sayı olarak yazılacağı varsayıldı.
Faiz oranı % cinsinden yazılacaksa koddaki 36500 kısmını 365 olarak değiştirirsiniz.


VBA:
You must log in to view content
(5 satır)
 
Kodu şu şekilde değiştirirseniz;
faiz oranı hücresinin biçimini istediğiniz gibi kullanabilirsiniz.
Yani hücre biçimi YÜZDE ORANI mı değil mi kontrolü, kodda yapılır.
5,87 (SAYI) yazıldığında da, %5,87 (YÜZDE ORANI) yazıldığında da %5,87 faiz uygular.

VBA:
You must log in to view content
(6 satır)
 
Üst