walabi
Altın Üye
- Katılım
- 22 Eylül 2012
- Mesajlar
- 675
- Excel Vers. ve Dili
-
excel 2010
excel 2013
- Altın Üyelik Bitiş Tarihi
- 06-08-2025
Merhaba, aşağıda belirttiğim kod ile yapmaya çalıştığım şudur. textbox20 ye 0 ile 100 arasında bir sayı girdikten sonra listboxdaki 5, 7, ve 8. sütunların değerleri yenilensin. Biraz açıklamam gerekirse anlaşılması için, Listbox1 in sütunlarına farklı textboxlardan adet, birim fiyat, matrah, kdv, toplam tutar gibi veriler aldırıyorum. En son işlem olarak şöylesi birşey yapmaya çalıştım. Bu verilere indirim(iskonto) uygulamak. Textbox20 ye % 10 iskonto yapmak amacıyla 10 sayısı gibi değer giriyorum. Aşağıdaki kodların bana verdiği sonuç değeri şu:
Örneğin toplam tutar 236 ise ve ben % 10 iskonto amacı ile 10 girmişsem sonuç değeri 191,16 olmakta. Ancak olması gereken değer 212,40 . 236 değeri 2 defa 0,90 ile çarpılmakta. İki kez iskonto uygulaması yapılmış gibi.
Kusura bakılmasın, belki basittir ama ben nerde mantık hatası yapmaktayım, yada gözden kaçırdığım nedir?
If TextBox20 = "" Or Not IsNumeric(TextBox20) Or TextBox20 <= 0 Or TextBox20 > 100 Then
TextBox20 = ""
Cancel = True
Exit Sub
Else
For i = 1 To ListBox1.ListCount - 1
ListBox1.List(i, 4) = TextBox20.Value
ListBox1.List(i, 5) = ListBox1.List(i, 5) * ((100 - TextBox20.Value) / 100)
ListBox1.List(i, 7) = ListBox1.List(i, 7) * ((100 - TextBox20.Value) / 100)
ListBox1.List(i, 8) = ListBox1.List(i, 8) * ((100 - TextBox20.Value) / 100)
Next i
End If
Örneğin toplam tutar 236 ise ve ben % 10 iskonto amacı ile 10 girmişsem sonuç değeri 191,16 olmakta. Ancak olması gereken değer 212,40 . 236 değeri 2 defa 0,90 ile çarpılmakta. İki kez iskonto uygulaması yapılmış gibi.
Kusura bakılmasın, belki basittir ama ben nerde mantık hatası yapmaktayım, yada gözden kaçırdığım nedir?
If TextBox20 = "" Or Not IsNumeric(TextBox20) Or TextBox20 <= 0 Or TextBox20 > 100 Then
TextBox20 = ""
Cancel = True
Exit Sub
Else
For i = 1 To ListBox1.ListCount - 1
ListBox1.List(i, 4) = TextBox20.Value
ListBox1.List(i, 5) = ListBox1.List(i, 5) * ((100 - TextBox20.Value) / 100)
ListBox1.List(i, 7) = ListBox1.List(i, 7) * ((100 - TextBox20.Value) / 100)
ListBox1.List(i, 8) = ListBox1.List(i, 8) * ((100 - TextBox20.Value) / 100)
Next i
End If