Soru Gelir Vergisi ve Damga Vergisi İstisna Fonksiyonu (Genel)

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
merhaba
Bilindiği üzere Asagri ücretlilerin vergileri ve damga vergilleri istisna kapsamına alınarak sıfır vergi sıfır damga kesilecek. Fakat kanun gereği istisnayı aşan glier ve damga farkları ödenecek.
Aşağıdaki fonksiyonda bu kontrolü sağlamak için kodda düzenleme yapılması lazım ama ben yapamadım..

Koşullar:
Vergi İstisna Matrahı 4253,40 Yani Asgari Ücret 5004 TL nin işçi payları toplamından düştükten sonra kalan kısımdır. 5004-(700,56 İşç Payı+50,04 İşsizlik İşçi Payı)= 4253,40 Bu istisna Vergi Matrahıdır.

1. Koşul:
Gelir vergisi matrahı 4253,40 den BÜYÜK çıkarsa. Bordroda oluşan (Vergi Matrahı - 4253,40 ) = İstisna Dışı Vergi Matrahı
Örnek
Bordroda 6750 Vergi Matrahı oluşsun.
6750 - 4253,40 = 2496,60 Vergi Matrahından Gelir Vergisi kesilecek. %15 diyelim buda 374,49 ödenecek.

2.Koşul:
Gelir vergisi matrahı 4253,40 eşit ve KÜÇÜK çıkarsa. Bordroda Gelir vergisi SIFIR olacak. 4253,40 aşmadığı için...
Örnek
Bordroda 3000 Vergi Matrahı oluşsun.
3000 TL 4253,40 den küçük olduğu için = 0 Vergi yazacak..

3.KOŞUL:
Damga Vergisi istisnası
5004 Asgari Ücretin Damga Vergisi 37,98 TL'dir. Bordroda çıkan Damga vergisi 37,98 den küçük ise sıfır, büyük ise 37,98 ile farkı damga vergisi kesecek.

Örnek
Damga vergisi 54,25 çıkmış düyelim. 54,25 - 37,98= 16,27 damga vergis ikesilecek.
Damga vergisi 12,50 çıkmış ise direk SIFIRI yazacak.

Bunu aşağıdaki fonksiyonda yaparsak formüllerle upraşmayız diye düşünüyorum. Alternatif fikir olursa da olur.



Eski Kullanılan kod:
HTML:
Function Gelirvergisihesapla(kümülatif_matrah, matrah)
Dim a(6)
Dim b(6)
Dim c(6)
Dim d(6)
Dim vergi1(6)
Dim vergi2(6)
Dim vergi3(6)
deger1 = 0
deger2 = 0
deger3 = 0
'--------------------------------------
rakam1 = kümülatif_matrah
rakam2 = kümülatif_matrah - matrah
rakam3 = matrah - kümülatif_matrah
'--------------------------------------
'yüzde oranları
b(1) = 0.15
b(2) = 0.2
b(3) = 0.27
b(4) = 0.35
b(5) = 0.35
b(6) = 0.35
'______________________________
'vergi dilimleri
c(1) = Sheets("Parametreler").Range("D7")
c(2) = Sheets("Parametreler").Range("D8")
c(3) = Sheets("Parametreler").Range("D9")
c(4) = 500000000
c(5) = 500000000
c(6) = c(5) * rakam1
'______________________________
d(1) = c(1)
d(2) = c(2) - c(1)
d(3) = c(3) - c(2)
d(4) = c(4) - c(3)
d(5) = c(5) - c(4)
d(6) = c(6) - c(5)
i = 1
While rakam1 > 0
If rakam1 >= d(i) Then
a(i) = d(i)
vergi1(i) = ((d(i) * b(i)) / 1)
rakam1 = rakam1 - d(i)
ElseIf rakam1 < d(i) Then
d(i) = rakam1
rakam1 = rakam1 - d(i)
vergi1(i) = ((d(i) * b(i)) / 1)
End If
deger1 = deger1 + vergi1(i)
i = i + 1
Wend
i = 1
While rakam2 > 0
If rakam2 >= d(i) Then
a(i) = d(i)
vergi2(i) = ((d(i) * b(i)) / 1)
rakam2 = rakam2 - d(i)
ElseIf rakam2 < d(i) Then
d(i) = rakam2
rakam2 = rakam2 - d(i)
vergi2(i) = ((d(i) * b(i)) / 1)
End If
deger2 = deger2 + vergi2(i)
i = i + 1
Wend
i = 1
While rakam3 > 0
If rakam3 >= d(i) Then
a(i) = d(i)
vergi3(i) = ((d(i) * b(i)) / 1)
rakam3 = rakam3 - d(i)
ElseIf rakam3 < d(i) Then
d(i) = rakam3
rakam3 = rakam3 - d(i)
vergi3(i) = ((d(i) * b(i)) / 1)
End If
deger3 = deger3 + vergi3(i)
i = i + 1
Wend
'--------------------------------------
If kümülatif_matrah > matrah Then
deger = deger3
Else
deger = 0
End If
Gelirvergisihesapla = (deger1 - deger2) + deger3
End Function
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba
Her şey L , M, N sütunlarında buradaki formüllere 4253,40 değerini eklemeniz gerekiyor.
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Manuel yapıyorum zaten fonksiyona eklemek istiyorum
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Bu koda bir değişken daha atamamız gerekecek.
formül mantığı ile anlatmaya çalıyorum makro yazamadığım için

rakam3 = matrah - kümülatif_matrah
rakam4 = matrah < 4253,40
rakam4=0
Gelirvergisihesapla = rakam4<; (deger1 - deger2) + deger3
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Function Gelirvergisihesapla(kümülatif_matrah, matrah)

yukarıdaki bölümün altına aşağıdaki bölümü eklermisiniz.

kümülatif_matrah = (kümülatif_matrah - 4253.4)
matrah = (matrah - 4253.4)
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
kODU BURAYA EKLEDİM
233010

Sonuç değişmedi

126,99 olması lazım Verginin 765-638,01= 126,99 yada 756 - (4253,40 x15%= 638,01)

233011
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Yanlış yere eklemişsiniz
Function Gelirvergisihesapla(kümülatif_matrah, matrah)

en yukarıdaki birinci bölümün altına ekliyeceksiniz.
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Yanlış yere eklemişsiniz
Function Gelirvergisihesapla(kümülatif_matrah, matrah)

en yukarıdaki birinci bölümün altına ekliyeceksiniz.
Oraya da ekledim ama aynı değişmedi

233012
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
dosyanda bununla ilgili iki adet kod var siz eklemeyi modüle1 yapacaksınız
diğer taraftan sayfadaki diğer kodu da silin
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Onu unutmuşum deniyorum
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
dosyanda bununla ilgili iki adet kod var siz eklemeyi modüle1 yapacaksınız
diğer taraftan sayfadaki diğer kodu da silin
Taam hocam harika oldu.. Sadece Damga Vergisi kaldı onada bir çözüm bulabilirmiyiz

Damga vergisi 37,98 den küçükse sıfır, büyükse farkı

Damga vergisi 54,25 çıkmış düyelim. 54,25 - 37,98= 16,27 damga vergis ikesilecek.
Damga vergisi 12,50 çıkmış ise direk SIFIRI yazacak. 37,98 kadar sıfır
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
=A2*0,759%
yukarıdaki sizin formülünüz
aşağıdaki gibi denermisiniz.

=(A2*0,759%)-37,98
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
=A2*0,759%
yukarıdaki sizin formülünüz
aşağıdaki gibi denermisiniz.

=(A2*0,759%)-37,98
= 16 -37,98 = -21,96 gibi
DV küçük çıkınca sorun olmuyor ama 37,98 küçükse eksi veriyor. Sorun yok onu da halledeirm formülle. Vergi daha önemliydi.. Elinize sağlık
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Bu işi çözemedim henüz.
%15 - %20 -%30 gibi durumlarda iş karışıyor..Bu kodlama kamuda herkese lazım olacak @Haluk
 
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Matrahtan 4253,4 eksiltirseniz kişi % 20 ye girdiğinde sonuç hatalı çıkar. Hesaplanan gelir vergisini bulduktan sonra istisna vergisini ayrıca hesaplayarak düşmeniz gerekir. Örneğin Kişi 3. ayda % 20 ye girdiğini varsayarsak istisna matrahından düştüğünüz 4.253,4'ı da % 20 istisnadan hesaplar bu şekilde hatalı olur. Makroda önce normal vergiyi uygun dilime göre hesaplamanız gerekir hesaplanan vergiyi bulduktan sonra istisna vergisinide istisna kümülatif matrahına göre hesaplayarak bulduğunuz hesaplanan vergiden düşmeniz gerekir. İstisnaya tutulan asgari ücret kümülatif matrahınıda aynı kümülatif vergi matrahı gibi bir yerde takip etmeniz gerekir ki diğer vergi dilimlerine geçişlerde doğru sonucu bulabilesiniz.
 
Üst