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
