ALpMontana
КЯaL´da TaNıMaM КuяaL´da
Yıl sonu geldi ve biriktirdiğimiz fişleri teslim etme zamanı yaklaşıyor. Ücretliler bir yıl boyunca biriktirdikleri harcama belgelerini 22 Ocak Pazartesi akşamına kadar çalıştıkları yerlerin personel bölümlerine teslim etmeleri gerekiyor.
2006 yılında topladığımız fişlerin vergi iadesi; ilk 3.600 YTL lik kısmı için %8, ikinci 3.600 YTL lik kısmı için %6 ve geriye kalan kısmı içinde %4 üzerinden hesaplanacak.
Bilindiği gibi 2007 yılından itibaren de vergi iadesi kaldırılarak yerine asgari geçim indirimi getirilmesi yönünde çalışmalar var.
Aşağıda topladığınız fiş miktarını text kutusuna girdiğinizde alacağınız vergi iadesi tutarını otomatik hesaplayan programın kodlarını veriyorum.
Visual Basic'te boş bir form açın ve 6 adet text kutusu, 1 adet label, 3 adet komut butonu ekleyin.
Text kutularının adını Txtfişmiktarı, Txtilkdilim, Txtikincidilim, Txtilkyüzde, Txtikinciyüzde, Txtsonyüzde olarak değiştirin.
Label kutusunun adını lbliademiktari olarak değiştirin.
Komut butonlarının adını cmdhesapla, cmdtemizle, cmdcikis olarak değiştirin. Ve aşağıdaki komutları formunuza ekleyip programı çalıştırın.
Program çalıştığında text kutularına gerekli rakamlar yüklenecektir. Siz txtfişmiktarı kutusuna hesaplanmasını istediğiniz fiş miktarını girip cmdhesapla tuşuna bastığınızda alacağınız vergi iadesi tutarı otomatik olarak hesaplanacak ve sonuç lbliademiktarı (label) kutusunda görülecektir. Program Text kutularına sadece rakam karakterlerini girmenize izin vermektedir.
Burada program açıkken vergi iadesi hesabında baz alınacak txtilkdilim, txtikincidilim kutularını ve txtilkyüzde, txtikinciyüzde, txtsonyüzde oranlarını değiştirerek farklı sonuçların hesaplanmasını sağlayabilirsiniz. Yani kontrol bizde. İstediğimiz dilim için istediğimiz oranı girerek hesaplama yaptırabiliriz.
Tüm arkadaşlara çalışmalarında başarılar diliyorum..
Dim a1, a2, a3, a4, a5, a6, b, c As Integer
Private Sub cmdhesapla_Click()
Dim gir, çik As Currency
Dim d1, d2, o1, o2, o3 As Single
gir = Val(txtfişmiktari.Text)
d1 = Val(txtilkdilim.Text)
d2 = Val(txtikincidilim.Text)
o1 = Val(txtilkyüzde.Text)
o2 = Val(txtikinciyüzde.Text)
o3 = Val(txtsonyüzde.Text)
If gir = "" Then
çik = ""
Exit Sub
End If
Select Case gir
Case Is <= d1
çik = gir * (o1 / 100)
Case Is <= d1 + d2
çik = (d1 * (o1 / 100)) + ((gir - d1) * (o2 / 100))
Case Is > d1 + d2
çik = (d1 * (o1 / 100)) + (d2 * (o2 / 100)) + ((gir - (d1 + d2)) * (o3 / 100))
End Select
b = InStr(1, çik, ",")
If b > 0 Then
çik = (Int(çik * 100)) / 100
End If
lbliademiktari.Caption = çik
txtfişmiktari.SetFocus
lbliademiktari.BackColor = &HC0E0FF
End Sub
Private Sub cmdtemizle_Click()
txtfişmiktari.Text = ""
lbliademiktari.Caption = ""
lbliademiktari.BackColor = &HC0FFFF
txtfişmiktari.SetFocus
End Sub
Private Sub cmdcikis_Click()
End
End Sub
Private Sub Form_Load()
txtilkdilim = 3600
txtikincidilim = 3600
txtilkyüzde = 8
txtikinciyüzde = 6
txtsonyüzde = 4
End Sub
Private Sub txtfişmiktari_Change()
'lbliademiktari.ForeColor = &H80000012
lbliademiktari.BackColor = &HC0FFFF
lbliademiktari.Caption = ""
End Sub
Private Sub txtfişmiktari_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a1 = InStr(1, txtfişmiktari.Text, ".")
If a1 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtilkdilim_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a2 = InStr(1, txtilkdilim.Text, ".")
If a2 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtilkyüzde_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a3 = InStr(1, txtilkyüzde.Text, ".")
If a3 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtikincidilim_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a4 = InStr(1, txtikincidilim.Text, ".")
If a4 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtikinciyüzde_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a5 = InStr(1, txtikinciyüzde.Text, ".")
If a5 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtsonyüzde_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a6 = InStr(1, txtsonyüzde.Text, ".")
If a6 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
2006 yılında topladığımız fişlerin vergi iadesi; ilk 3.600 YTL lik kısmı için %8, ikinci 3.600 YTL lik kısmı için %6 ve geriye kalan kısmı içinde %4 üzerinden hesaplanacak.
Bilindiği gibi 2007 yılından itibaren de vergi iadesi kaldırılarak yerine asgari geçim indirimi getirilmesi yönünde çalışmalar var.
Aşağıda topladığınız fiş miktarını text kutusuna girdiğinizde alacağınız vergi iadesi tutarını otomatik hesaplayan programın kodlarını veriyorum.
Visual Basic'te boş bir form açın ve 6 adet text kutusu, 1 adet label, 3 adet komut butonu ekleyin.
Text kutularının adını Txtfişmiktarı, Txtilkdilim, Txtikincidilim, Txtilkyüzde, Txtikinciyüzde, Txtsonyüzde olarak değiştirin.
Label kutusunun adını lbliademiktari olarak değiştirin.
Komut butonlarının adını cmdhesapla, cmdtemizle, cmdcikis olarak değiştirin. Ve aşağıdaki komutları formunuza ekleyip programı çalıştırın.
Program çalıştığında text kutularına gerekli rakamlar yüklenecektir. Siz txtfişmiktarı kutusuna hesaplanmasını istediğiniz fiş miktarını girip cmdhesapla tuşuna bastığınızda alacağınız vergi iadesi tutarı otomatik olarak hesaplanacak ve sonuç lbliademiktarı (label) kutusunda görülecektir. Program Text kutularına sadece rakam karakterlerini girmenize izin vermektedir.
Burada program açıkken vergi iadesi hesabında baz alınacak txtilkdilim, txtikincidilim kutularını ve txtilkyüzde, txtikinciyüzde, txtsonyüzde oranlarını değiştirerek farklı sonuçların hesaplanmasını sağlayabilirsiniz. Yani kontrol bizde. İstediğimiz dilim için istediğimiz oranı girerek hesaplama yaptırabiliriz.
Tüm arkadaşlara çalışmalarında başarılar diliyorum..
Dim a1, a2, a3, a4, a5, a6, b, c As Integer
Private Sub cmdhesapla_Click()
Dim gir, çik As Currency
Dim d1, d2, o1, o2, o3 As Single
gir = Val(txtfişmiktari.Text)
d1 = Val(txtilkdilim.Text)
d2 = Val(txtikincidilim.Text)
o1 = Val(txtilkyüzde.Text)
o2 = Val(txtikinciyüzde.Text)
o3 = Val(txtsonyüzde.Text)
If gir = "" Then
çik = ""
Exit Sub
End If
Select Case gir
Case Is <= d1
çik = gir * (o1 / 100)
Case Is <= d1 + d2
çik = (d1 * (o1 / 100)) + ((gir - d1) * (o2 / 100))
Case Is > d1 + d2
çik = (d1 * (o1 / 100)) + (d2 * (o2 / 100)) + ((gir - (d1 + d2)) * (o3 / 100))
End Select
b = InStr(1, çik, ",")
If b > 0 Then
çik = (Int(çik * 100)) / 100
End If
lbliademiktari.Caption = çik
txtfişmiktari.SetFocus
lbliademiktari.BackColor = &HC0E0FF
End Sub
Private Sub cmdtemizle_Click()
txtfişmiktari.Text = ""
lbliademiktari.Caption = ""
lbliademiktari.BackColor = &HC0FFFF
txtfişmiktari.SetFocus
End Sub
Private Sub cmdcikis_Click()
End
End Sub
Private Sub Form_Load()
txtilkdilim = 3600
txtikincidilim = 3600
txtilkyüzde = 8
txtikinciyüzde = 6
txtsonyüzde = 4
End Sub
Private Sub txtfişmiktari_Change()
'lbliademiktari.ForeColor = &H80000012
lbliademiktari.BackColor = &HC0FFFF
lbliademiktari.Caption = ""
End Sub
Private Sub txtfişmiktari_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a1 = InStr(1, txtfişmiktari.Text, ".")
If a1 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtilkdilim_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a2 = InStr(1, txtilkdilim.Text, ".")
If a2 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtilkyüzde_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a3 = InStr(1, txtilkyüzde.Text, ".")
If a3 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtikincidilim_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a4 = InStr(1, txtikincidilim.Text, ".")
If a4 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtikinciyüzde_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a5 = InStr(1, txtikinciyüzde.Text, ".")
If a5 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub txtsonyüzde_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Or KeyAscii = Asc(".") Then
a6 = InStr(1, txtsonyüzde.Text, ".")
If a6 > 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub