• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Listboxdaki ondalıklı sayıları Textboxda ondalıklı olarak toplama

  • Konbuyu başlatan Konbuyu başlatan walabi
  • Başlangıç tarihi Başlangıç tarihi

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
1,080
Excel Vers. ve Dili
excel 2010

excel 2013
Merhaba,

Listboxdaki sütunların bazılarında ondalıklı, yani virgüllü sayılar var. örneğin bir listbox ın bir sütununda 1,20 ve 2,30 sayıları var. Bu sayıları aşağıdaki kod ile ilgili textboxa alıyorum ancak toplam 1,20 + 2,30 = 3,50 olması gerekirken textboxda görünen sayı 3,00 dır. Burda olması gereken 3,50 iken neden 3,00 dır. Bunu nasıl düzeltebilirim.

kullandığım kodlar aşağıda olduğu gibidir

toplam = 0
For i = 1 To ListBox1.ListCount
toplam = toplam + Val(ListBox1.List(i - 1))

Next i
TextBox12 = toplam


TextBox12 = Format(TextBox12, "#,##0.00")
 
F8 ile adımlayarak toplam değişkenin aldığı ilk sıfırdan büyük değeri söyler misiniz?
 
F8 ile adımlayarak toplam değişkenin aldığı ilk sıfırdan büyük değeri söyler misiniz?

f8 ile nasıl çalışılır tam bilmiyorum, bu yüzden dosyayı ekledim. userform3 üzerinden textbox11 in exit olayına bağlı çalışan kodlar, soldan en alttaki textbox, dosya şuan birhayli karışık , adım adım kurgulamaya çalışıyorum.
 

Ekli dosyalar

F8 ile adımlayarak toplam değişkenin aldığı ilk sıfırdan büyük değeri söyler misiniz?

Ve , hem bu site olsun hem farklı siteler, bu konu üzerine bazı dökümanlar buldum , ancak konunun mantığını tam anlayamadım, nokta-virgül olayından mı kaynaklanmaktadır. Sayın Korhan Ayhan ın buna benzer bir konuya replace şeklinde çözümü olmuş. Ancak kendi dosyama uyarlayamadım .
 
Deneyiniz.
Kod:
TextBox12.Value = Format(CDbl(toplam), "#,##0.00")
 
Alt satırlarda tekrar eski format yapılmış olabilir.
 
Alt satırlarda tekrar eski format yapılmış olabilir.

Merhana,

Yazdığınız kod doğru uygulamayı veriyormuş. Ancak deneme yanılma yaparken şu şekilde çözdüm.
.AddItem TextBox3.Text * 1 , buraya *1 ekledim, metin görülen ifadeyi, sayıya çevirme ihtimaline karşılık, doğrumu düşündüm yanlış mı bilmiyorum ama *1 yapmak işe yaradı.

Kodun tamamı aşağıda


Private Sub TextBox11_Exit(ByVal Cancel As MSForms.ReturnBoolean)
' uyarlanacak

If TextBox3.Value <> Empty And TextBox4.Value <> Empty Then

With ListBox1
.AddItem TextBox3.Text * 1
.List(.ListCount - 1, 1) = TextBox4.Text
.List(.ListCount - 1, 2) = TextBox5.Text
.List(.ListCount - 1, 3) = TextBox6.Text
.List(.ListCount - 1, 4) = TextBox7.Text
.List(.ListCount - 1, 5) = TextBox8.Text
.List(.ListCount - 1, 6) = TextBox9.Text
.List(.ListCount - 1, 7) = TextBox10.Text
.List(.ListCount - 1, 8) = TextBox11.Text



End With
Else
End If

Call TextBox3_Enter
TextBox3.SetFocus
' *************************************************************

' ****************************************************************
toplam = 0
For i = 1 To ListBox1.ListCount
'toplam = toplam + Val(ListBox1.List(i - 1))
toplam = toplam + Val(ListBox1.List(i - 1))

Next i
TextBox12.Value = Format(CDbl(toplam), "#,##0.00")
End Sub
 
Çarpı yerine cdbl kullanırsanız daha doğru olur.
Val kullanmayın.Oda küsüratsız sonuç verir.
 
Çarpı yerine cdbl kullanırsanız daha doğru olur.
Val kullanmayın.Oda küsüratsız sonuç verir.


Sayın Evren Gizlen ve forum üyeleri,

Bir konuda desteğinizi rica edicem. Hem destek hem açıklama bağbında.

Userform üzerinde testboxlar, comboboxlar ve 1 tane listbox var. Ben şöylesi birşey yapmaya çalışıyorum. Textboxların bazılarına veri giriyorum. Girdiğim bu verilerin bazılarını listboxa alıyorum. Listboxı hafıza gibi kullanmaya çalışıyorum. Devamında listboxlardaki bazı sütunların veri toplamlarını başka textboxlara alıyorum. Ve en son olarak excel sayfasına yazdırmaya çalışıyorum. Sorum ise şu.

Örneğin;

Adet*Fiyat = Alış Tutarı
Alış Tutarı * KDV oranı = KDV tutarı
* Listboxa alma işlemi yapılıyor
Toplam Tutar = Alış Tutarı + KDV tutarı

Bu adımlarda veri girişi yapılan textboxların bazıları tam sayı , bazıları ise ondalıklı.
Sormaya çalıştığım ise şu. CDbl yi nerde kullanmalıyız. Veri girişi yapılan textboxların ondalıklı olanlarının hepsine bu uygulanmalımıdır( change, exit, enter olaylarına bağlı olarak demek istediğim), yoksa sonuç textboxlarına uygulamak yeterli olur mu.

Umarım anlatabilir mişimdir.

Teşekkürler,
 
Textbox (Metin Kutusu) nesnesi metinsel biçime sahiptir.

Bu sebeple gerektiği zamanda sayısal veriler için biçimlendirme uygulamalısınız. Bunun kararını siz vermelisiniz.
 
Merhaba,

Daha önce bu konuyla ilgili destek rica etmiştim. Öncelikle kendimce hazırlamaya çalıştığım excel dosyası ekte.

Textboxlardan Listboxlara veri alıyorum. Listboxlardaki bazı sütunların verilerini daha sonra farklı textboxlara TOPLATMAYA çalışıyorum ve bunları ilgili excel sayfasına aktarıyorum. Listboxlardan toplatmaya çalıştığım toplamlarda benim anlamadığım bir sorun var. toplamlar sanki, 100, 1000, 10.000 ile çarpılmış gibi görünüyor. Anladığımı zannettiğim ise şu. Rasyonel ifadelerde, virgülden sonrası arttıkça bu değer büyümekte.

Benim burada çözemediğim şey nedir?

Teşekkürler,
 

Ekli dosyalar

Excelin VBA tarafındaki hesaplama tepkisini görmeniz için çok basit bir dosya hazırladım.

Formu açtığınızda karşınıza gelen alanlara sayısal veri girerek özellikle ondalıklı değerler girip sonuçları gözlemleyin. Ondalık karakteri olarak nokta ve virgül girerek denemeler yapın.

Durumu daha iyi görebilmeniz adına hiçbir biçimlendirme yapmadım.
 

Ekli dosyalar

Geri
Üst