• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

  • Konbuyu başlatan Konbuyu başlatan htsumer
  • Başlangıç tarihi Başlangıç tarihi

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
975
Excel Vers. ve Dili
Excel-2003
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

Merhaba
Her şey L , M, N sütunlarında buradaki formüllere 4253,40 değerini eklemeniz gerekiyor.
 
Manuel yapıyorum zaten fonksiyona eklemek istiyorum
 
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
 
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)
 
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
 
Yanlış yere eklemişsiniz
Function Gelirvergisihesapla(kümülatif_matrah, matrah)

en yukarıdaki birinci bölümün altına ekliyeceksiniz.
 
dosyanda bununla ilgili iki adet kod var siz eklemeyi modüle1 yapacaksınız
diğer taraftan sayfadaki diğer kodu da silin
 
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
 
=A2*0,759%
yukarıdaki sizin formülünüz
aşağıdaki gibi denermisiniz.

=(A2*0,759%)-37,98
 
=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
 
Bu işi çözemedim henüz.
%15 - %20 -%30 gibi durumlarda iş karışıyor..Bu kodlama kamuda herkese lazım olacak @Haluk
 
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.
 
Geri
Üst