Çözüldü Gelir Vergisi Hesaplama Vba makro kod hatası

Katılım
18 Şubat 2020
Mesajlar
8
Excel Vers. ve Dili
Microsoft Office 2016
Altın Üyelik Bitiş Tarihi
10-02-2024
Herkese merhaba,
aşağıda yer alan excel formülünü vba koduna çevirerek kullanmaya çalıştığımda bazı durumlarda hata veriyor mesela aylık matrah 15.000 süregelen matrah 25.000 olursa hesaplamayı doğru yapıyor fakat aylık matrah 6.079,39 süregelen matrah 0,00 TL ise hata veriyor aynı tutarlar excel formülünde gayet başarılı şekilde sonuç veriyor. Kodu düzenlerken nerede hata yapıyorum?

TextBox13.Value = T9 ve TextBox14.Value = U9 olacak şekilde

Makro Kodu

GV = Evaluate("SUMPRODUCT(--(" & CDbl(TextBox13.Value) & "+" & CDbl(TextBox14.Value) & ">VERGİLER!$D$1:$D$5), (" & CDbl(TextBox13.Value) & " +" & CDbl(TextBox14.Value) & "-VERGİLER!$D$1:$D$5),VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)-SUMPRODUCT(--(" & CDbl(TextBox14.Value) & ">VERGİLER!$D$1:$D$5), (" & CDbl(TextBox14.Value) & "-VERGİLER!$D$1:$D$5), VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)")

Excel Formülü :

TOPLA.ÇARPIM(--(T9+U9>VERİLER!$E$1:$E$5); (T9+U9-VERİLER!$E$1:$E$5);VERİLER!$F$2:$F$6-VERİLER!$F$1:$F$5)-TOPLA.ÇARPIM(--(U9>VERİLER!$E$1:$E$5); (U9-VERİLER!$E$1:$E$5); VERİLER!$F$2:$F$6-VERİLER!$F$1:$F$5))

Kullanıcı Adı : admin
Şifre : 1234
VBA kod şifresi : 03mayis1907


EkÖdemeHesaplama Formunda hesaplama butonunda düzenleme yapılması gerekiyor
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formülü EVALUATE etmeden önce bir değişkene atayın. Sonra F8 tuşu ile kodu adım adım çalıştırıp değişkendeki formülü kontrol edin. Böylece hatanızı daha çabuk bulabilirsiniz.
 
Katılım
18 Şubat 2020
Mesajlar
8
Excel Vers. ve Dili
Microsoft Office 2016
Altın Üyelik Bitiş Tarihi
10-02-2024
Formülü EVALUATE etmeden önce bir değişkene atayın. Sonra F8 tuşu ile kodu adım adım çalıştırıp değişkendeki formülü kontrol edin. Böylece hatanızı daha çabuk bulabilirsiniz.
Excel Vba konusunda çok yeni sayılırım örnekle göstemeniz mümkün mü? Dim GV As Double ataması yaptım ama doğru mu acaba
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi bir değişken kullanabilirsiniz.

Formul = "SUMPRODUCT(--(" & CDbl(TextBox13.Value) & "+" & CDbl(TextBox14.Value) & ">VERGİLER!$D$1:$D$5), (" & CDbl(TextBox13.Value) & " +" & CDbl(TextBox14.Value) & "-VERGİLER!$D$1:$D$5),VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)-SUMPRODUCT(--(" & CDbl(TextBox14.Value) & ">VERGİLER!$D$1:$D$5), (" & CDbl(TextBox14.Value) & "-VERGİLER!$D$1:$D$5), VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)"
GV = Evaluate(Formul)
 
Katılım
18 Şubat 2020
Mesajlar
8
Excel Vers. ve Dili
Microsoft Office 2016
Altın Üyelik Bitiş Tarihi
10-02-2024
Aşağıdaki gibi bir değişken kullanabilirsiniz.

Formul = "SUMPRODUCT(--(" & CDbl(TextBox13.Value) & "+" & CDbl(TextBox14.Value) & ">VERGİLER!$D$1:$D$5), (" & CDbl(TextBox13.Value) & " +" & CDbl(TextBox14.Value) & "-VERGİLER!$D$1:$D$5),VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)-SUMPRODUCT(--(" & CDbl(TextBox14.Value) & ">VERGİLER!$D$1:$D$5), (" & CDbl(TextBox14.Value) & "-VERGİLER!$D$1:$D$5), VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)"
GV = Evaluate(Formul)
Error hatası veriyor maalesef ama şöyle bir durum farkettim denerken TextBox13 değerine 6.000,00 yazarsam sorunsuz hesaplıyor ama 6.039,79 gibi küsuratlı bir sayıda hata veriyor sanırım asıl problem bu
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
VBA tarafında virgülü nokta ile değiştirmelisiniz.
 
Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba

Fonksiyonun en baş kısmına aşağıdaki değişken atamasını yapın.

Kod:
Dim Formul As Double
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya üzerinde sorunu görebilirsek daha sağlıklı cevaplar verebiliriz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kullandığım pcde Türkçe karakter sorunu yaşıyorum. Bu sebeple dosyanızda deneme yapamadım.

Aşağıdaki gibi deneyiniz. Gördüğünüz gibi sayısal veride virgül-nokta değişimi uyguladım.

C++:
    GV = Evaluate("SUMPRODUCT(--(" & CDbl(Replace(TextBox13.Value, ",", ".")) & "+" & CDbl(Replace(TextBox14.Value, ",", ".")) & ">VERGİLER!$D$1:$D$5), (" & CDbl(Replace(TextBox13.Value, ",", ".")) & " +" & CDbl(Replace(TextBox14.Value, ",", ".")) & "-VERGİLER!$D$1:$D$5),VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)-SUMPRODUCT(--(" & CDbl(Replace(TextBox14.Value, ",", ".")) & ">VERGİLER!$D$1:$D$5), (" & CDbl(Replace(TextBox14.Value, ",", ".")) & "-VERGİLER!$D$1:$D$5), VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)")
 
Katılım
18 Şubat 2020
Mesajlar
8
Excel Vers. ve Dili
Microsoft Office 2016
Altın Üyelik Bitiş Tarihi
10-02-2024
GV = Evaluate("SUMPRODUCT(--(" & CDbl(Replace(TextBox13.Value, ",", ".")) & "+" & CDbl(Replace(TextBox14.Value, ",", ".")) & ">VERGİLER!$D$1:$D$5), (" & CDbl(Replace(TextBox13.Value, ",", ".")) & " +" & CDbl(Replace(TextBox14.Value, ",", ".")) & "-VERGİLER!$D$1:$D$5),VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)-SUMPRODUCT(--(" & CDbl(Replace(TextBox14.Value, ",", ".")) & ">VERGİLER!$D$1:$D$5), (" & CDbl(Replace(TextBox14.Value, ",", ".")) & "-VERGİLER!$D$1:$D$5), VERGİLER!$E$2:$E$6-VERGİLER!$E$1:$E$5)")
Merhaba yazmış olduğunuz şekilde revize ettim ama bu seferde sonucu çok farklı veriyor. 900,00 olması gereken sonuç 152.000 olarak geliyor
 

Ekli dosyalar

Üst