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

walabi

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

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
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")
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
F8 ile adımlayarak toplam değişkenin aldığı ilk sıfırdan büyük değeri söyler misiniz?
 

walabi

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

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
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

walabi

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

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
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 .
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Deneyiniz.
Kod:
TextBox12.Value = Format(CDbl(toplam), "#,##0.00")
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Alt satırlarda tekrar eski format yapılmış olabilir.
 

walabi

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

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025

walabi

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

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
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
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Çarpı yerine cdbl kullanırsanız daha doğru olur.
Val kullanmayın.Oda küsüratsız sonuç verir.
 

walabi

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

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Ç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,
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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.
 

walabi

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

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
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

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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

Üst