Yıla göre Matrah Hesaplama

Katılım
6 Ekim 2006
Mesajlar
149
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
24/05/2022
F3 bakıp yılı alacak, Süreglen Matrahla (G3) + Aylık matrahı (H3) = toplayacak
A sütunda yılın karşılığına gelecek (B C D) sütunlarına göre
Aylık matrahın (H3) 0,15, 0,20, 0,27 Gelir Vergisi hesaplayacak

Örnek Makro 2019 Matrah
Function Gvergi(Sgelen, Matrah As Double)
a = 18000#
b = 40000#
c = 148000#
If (Sgelen + Matrah) <= a Then Gvergi = Matrah * 0.15
If (Sgelen + Matrah) >= a And Sgelen < a Then Gvergi = (Sgelen + Matrah - a) * 0.2 + (a - Sgelen) * 0.15
If (Sgelen + Matrah) >= a And Sgelen < a Then Gvergi = (Sgelen + Matrah - a) * 0.2 + (a - Sgelen) * 0.15
If Sgelen >= a Then Gvergi = Matrah * 0.2
If (Sgelen + Matrah) >= b And Sgelen < b Then Gvergi = (Sgelen + Matrah - b) * 0.27 + (b - Sgelen) * 0.2
If Sgelen >= b Then Gvergi = Matrah * 0.27
End Function
Bu Makroya uyarlayabilirmiyiz.
https://www.dosya.tc/server21/z30h39/Yila_Gore_Matrah.xlsm.html
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Örnek dosyanızdaki verilere göre bu ktf deneyiniz.
kullanış formülü
Kod:
=gelir(G3;H3;F3)


Rich (BB code):
Function gelir(kümülatif_matrah, matrah, yıl)

sayf1 = "Sayfa1"

sut = 0
For r = 3 To Worksheets(sayf1).Cells(Rows.Count, "A").End(3).Row
If yıl = Worksheets(sayf1).Cells(r, 1).Value Then
sut = r
End If
Next


If matrah = "" Then
gelir = ""
Exit Function
ElseIf yıl = 0 Then
gelir = ""
Exit Function
End If


Dim a(4)
Dim b(4)
Dim c(4)
Dim vergi(4)
vergi1 = 0
vergi2 = 0
i = 1
rakam = kümülatif_matrah + matrah
rakam1 = kümülatif_matrah
'______________________________
'yüzde oranları

a(1) = 0.15
a(2) = 0.2
a(3) = 0.27

'______________________________
'vergi dilimleri
b(1) = Worksheets(sayf1).Cells(sut, 2).Value
b(2) = Worksheets(sayf1).Cells(sut, 3).Value
b(3) = Worksheets(sayf1).Cells(sut, 4).Value
b(4) = b(3) * rakam
'______________________________
c(1) = b(1)
c(2) = b(2) - b(1)
c(3) = b(3) - b(2)
c(4) = b(4) - b(3)

While rakam > 0
'---------------------------------
If rakam >= c(i) Then
vergi(i) = ((c(i) * a(i)) / 1)
rakam = rakam - c(i)
ElseIf rakam < c(i) Then
c(i) = rakam
rakam = rakam - c(i)
vergi(i) = ((c(i) * a(i)) / 1)
Else
vergi(4) = ((c(4) * a(4)) / 1)
End If
vergi1 = vergi1 + vergi(i)
'---------------------------------
If rakam1 >= c(i) Then
vergi(i) = ((c(i) * a(i)) / 1)
rakam1 = rakam1 - c(i)
ElseIf rakam1 < c(i) Then
c(i) = rakam1
rakam1 = rakam1 - c(i)
vergi(i) = ((c(i) * a(i)) / 1)
Else
vergi(i) = ((c(i) * a(i)) / 1)
End If
vergi2 = vergi2 + vergi(i)
'---------------------------------
i = i + 1
Wend
gelir = Round(vergi1 - vergi2, 2)
End Function





Yeni Bit Eşlem Resmi.jpg
 
Son düzenleme:
Katılım
6 Ekim 2006
Mesajlar
149
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
24/05/2022
Teşekkür ederim Saygılar
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
koda kontrol bölümü olarak kırmızı yeri ekledim.
 
Katılım
6 Ekim 2006
Mesajlar
149
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
24/05/2022
Çok Teşekkür ederim selam ve saygılar
 
Üst