Netten Brüte Ücret Hesaplama (KTF)

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Merhaba,

Ekte, kullanıcı tanımlı fonksiyon ile netten brüte hesaplama yapılabilen bir çalışma yer alıyor. Çalışmaya bu forumdan erişmiştim uzun zaman önce. Forumda aradım ama kaynağı bulamadım.. Yapmak istediğim şey şu; Gelir vergisine %40' lık yeni bir vergi dilimi daha eklenmesi nedeniyle, aşağıdaki GV hesaplama kodunu revize etmek istiyorum.

Kod:
Function GV(KMatrah As Double, VMatrah As Double) As Double
    Dim Dilim1 As Double, Dilim2 As Double, Dilim3 As Double, Dilim4 As Double
    Dim Oran1 As Integer, Oran2 As Integer, Oran3 As Integer, Oran4 As Integer
    Dim GV1 As Double, GV2 As Double, GV3 As Double, GV4 As Double
    
    Dilim1 = 0
    Dilim2 = 14800
    Dilim3 = 34000
    Dilim4 = 120000
    
    Oran1 = 15
    Oran2 = 20
    Oran3 = 27
    Oran4 = 35
    
    TMatrah = KMatrah + VMatrah
        
    If TMatrah <= Dilim2 Then
        GV1 = VMatrah * Oran1 / 100
    End If
    
    If TMatrah >= Dilim2 And TMatrah < Dilim3 Then
        Sor1 = (VMatrah - (TMatrah - Dilim2))
       If Sor1 > 0 Then
            GV1 = (TMatrah - Dilim2) * Oran2 / 100
            GV2 = Sor1 * Oran1 / 100
        Else:
            GV1 = VMatrah * Oran2 / 100
            GV2 = 0
        End If
    End If
 
    If TMatrah >= Dilim3 And TMatrah < Dilim4 And KMatrah < Dilim2 Then
        GV1 = (Dilim2 - KMatrah) * Oran1 / 100
        GV2 = (Dilim3 - Dilim2) * Oran2 / 100
        GV3 = ((TMatrah - Dilim3)) * Oran3 / 100
        GoTo son
    End If
    
    If TMatrah >= Dilim3 And TMatrah < Dilim4 And KMatrah > Dilim2 Then
        Sor2 = (VMatrah - (TMatrah - Dilim3))
        If Sor2 > 0 Then
            GV1 = (TMatrah - Dilim3) * Oran3 / 100
            GV2 = Sor2 * Oran2 / 100
        Else:
            GV1 = VMatrah * Oran3 / 100
            GV2 = 0
        End If
    End If
    
    If TMatrah >= Dilim4 And KMatrah < Dilim2 Then
        GV1 = (Dilim2 - KMatrah) * Oran1 / 100
        GV2 = (Dilim3 - Dilim2) * Oran2 / 100
        GV3 = ((Dilim4 - Dilim3)) * Oran3 / 100
        GV4 = ((TMatrah - Dilim4)) * Oran4 / 100
        GoTo son
    End If
 
    If TMatrah >= Dilim4 And KMatrah < Dilim3 Then
        GV1 = 0
        GV2 = (Dilim3 - KMatrah) * Oran2 / 100
        GV3 = ((Dilim4 - Dilim3)) * Oran3 / 100
        GV4 = ((TMatrah - Dilim4)) * Oran4 / 100
        GoTo son
    End If

    If TMatrah >= Dilim4 Then
        Sor = (VMatrah - (TMatrah - Dilim4))
        If Sor > 0 Then
            GV1 = (TMatrah - Dilim4) * Oran4 / 100
            GV2 = Sor * Oran3 / 100
        Else:
            GV1 = VMatrah * Oran4 / 100
            GV2 = 0
        End If
    End If
son:
    GV = GV1 + GV2 + GV3 + GV4
End Function
Güncel vergi dilimleri ve oranları aşağıdaki gibi olacak.

Dilim1 = 0
Dilim2 = 22000
Dilim3 = 49000
Dilim4 = 180000
Dilim5 = 600000

Oran1 = 15
Oran2 = 20
Oran3 = 27
Oran4 = 35
Oran5 = 40

Çalışma ekte yer alıyor. Yardımcı olabilir misiniz.

Saygılarımla.
 

Ekli dosyalar

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,397
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba,
farklı bir modüle yeni bir fonksiyon ekledim.
Dilim ve oranları, istediğiniz kadar arttırıp eksiltebilirsiniz.
İyi çalışmalar.
 

Ekli dosyalar

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Merhaba Mehmet Bey,

Kodun ayrı bir modülde ve fonksiyon adlarının farklı olmasından mıdır anlamadım, brüt hesabı yanlış oluyor. Olması gereken rakamları ve farkları belirttim. Rica etsem tekrar inceleyebilir misiniz.

İyi çalışmalar
 

Ekli dosyalar

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,397
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba,
kullanmış olduğunuz önceki Gelir Vergisi
fonksiyonundaki değerleri güncellemelisiniz.
Benim kullandığım fonksiyonun sonuçları test edilmiştir.
İyi çalışmalar.
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Şimdi oldu, çok teşekkür ederim.

İyi çalışmalar
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Merhaba,
farklı bir modüle yeni bir fonksiyon ekledim.
Dilim ve oranları, istediğiniz kadar arttırıp eksiltebilirsiniz.
İyi çalışmalar.
Merhaba Mehmet Bey,

Fonksiyon içerisinde yer alan dilim ve oranları, ayrı bir excel sayfasında değişken olarak tanımladım. Denedim sorunsuz çalıştı ve bu hali daha işlevsel oldu. Makro konusunda yeniyim ve kendimi geliştirmeye çalışıyorum, umarın gereksiz/hatalı bir işlem uygulamamışımdır.

Tekrar emeğinize sağlık.
 

Ekli dosyalar

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,397
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Günaydın,
parametrelerin kod içinde gömülü olmaması her zaman tercih edilmelidir. Bu açıdan doğru.
Ancak kod başlarken dizileri dinamik olarak yüklerseniz, sonraki dilim oran değişikliklerini
sadece sayfa üzerinde değiştirmeniz yeterli olur.
Teşekkürler.
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Merhaba Mehmet Bey,

Öncelikle bilgilendirme için çok teşekkür ederim. Aslında yapmak istediğim, sizin de bahsettiğiniz gibi kod içerisine müdahale etmeden sonraki dilim oran değişikliklerini sadece sayfa üzerinde değiştirmekti. Statik ve dinamik diziler hakkında henüz bilgi sahibi değilim. Rica etsem ilgili dosya üzerinde örnek ile gösterebilir misiniz.
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Merhaba Mehmet Bey,

Yaptığınız değişikliği ayrıca detaylı bakıp anlamaya ve öğrenmeye çalışacağım. Parametre sayfasındaki oran ve dilimleri değiştirdiğimde, D sütunundaki gelir vergisi değerleri değişmiyor. Excel hesaplama seçeneğim "Otomatik" olmasına rağmen ancak hücreye aynı formülü tekrar uyguladığımda değişiyor.
 

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,397
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba,
bu şekilde olması doğal, fonksiyona gönderdiğiniz matrah veya kümülatif matrahta bir değişiklik yaparsanız sonuç değişir.
Tarih bazında oran ve dilimler değiştiği için genelde bu fonksiyonlara tarih bilgisi de gönderilmelidir. Sizin de takip ettiğiniz, benzer forumlarda
örnekleri vardır.
İyi çalışmalar.
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Merhaba Mehmet Bey,

Detaylı bilgilendirme için teşekkür ederim. Çok sağ olun.

İyi çalışmalar.
 
Üst