texbox1 eksi texbox iki neden "0,9999"

Katılım
21 Aralık 2006
Mesajlar
18
Excel Vers. ve Dili
excel 2000
selamlar ufak bir pürüz çıkıyor nedenini tam anlayamadım...

texbox3.value = texbox1.value - textbox2.value

gibi bir komut. normalde bir sorun yok ama mesela 1,2 yi 1,1 den çıkartınca sonuç 9,999999... yani ondalıklıların hepsinde de aynı dokuz devirli sonucu vermiyor bazılarında yapıyor . numberformat gibi şeyler denedim ama değişmedi...
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki şekilde deneyiniz.
Ayrıca Textbox'lara sayıları .(nokta) ile girmeniz gerekebilir.

Kod:
Private Sub TextBox2_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub
 
Katılım
21 Aralık 2006
Mesajlar
18
Excel Vers. ve Dili
excel 2000
ilettiğiniz kodda "." ile girmek gerekiyor ama yine sonuç 9,99999 neden böyle oluyor ? acaba excelin "bug" ı falan mı?

ayrıca virgülle ayrılsa daha yerinde olur yani

Private Sub TextBox2_Change()
TextBox3.Value = TextBox1.Value - TextBox2.Value
End Sub

bu kod için 1,2 - 1,1 = 0,1 sonucunu almam için ne yapmam gerekir?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin. Virgülden sonra 4 haneden itibaren yuvarlama yapılır.

Kod:
Private Sub TextBox2_Change()
TextBox3.Value = Round(TextBox1 - TextBox2, 4)
End Sub
Not:Tespitiniz ilginç sebebini bende merak ediyorum.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Aşağıdaki kod satırını deneyin. En sondaki 1 ondalık sayısını ifade ediyor

Kod:
TextBox3.Text = FormatNumber(TextBox1.Text - TextBox2.Text, 1)
Edit:
Sayın Levent, özür mesajınızı görmemiştim. Ama buda başka bir alternatif olsun.
 
Katılım
21 Aralık 2006
Mesajlar
18
Excel Vers. ve Dili
excel 2000
cevaplar için teşekkür ederim ikiside çalışıyor... elinize sağlık...
 
Katılım
21 Aralık 2006
Mesajlar
18
Excel Vers. ve Dili
excel 2000
başka bir ilginç durum

textbox ile işlem yaptıırılma excele ters mi diye düşünmeye başladım...

dosyayı ekliyorum . virgül ile nokta karmaşası söz konusu. textboxlarda virgül sayı formatı için kabul edilirken , excele aktarılan sayılar noktalı olduğunda sayı formatı olarak kabul ediliyor. Daha doğrusu textbox noktayı algılamıyor yani 2.2 - 1.1 diyince 11 sonucunu veriyor mesela ama bunu da aktardığında sayı formatı oluyor.

ama örneğin 3,3 - 3,2 nin sonucunu sayı formatında aktarmıyor. bir gariplik var ama anlamadım....
 
Katılım
21 Aralık 2006
Mesajlar
18
Excel Vers. ve Dili
excel 2000
Private Sub TextBox2_Change()
TextBox3 = FormatNumber(0, 2)
If TextBox2 = "" Then Exit Sub
TextBox3.Value = Round(TextBox1 - TextBox2, 4)
[a1] = TextBox3.Value
End Sub


bu kodlada çözemedim , fikri ya da önerisi olan var mı? virüglle ayrılmış ondalıklı sayılar excele sayı formatında aktarılmıyor . Nokta ile ayrılmış olanlarda textbox da ondalıklı olarak algılanmıyor .

Excel böyle temel konularda yanlış yapmış olamaz sanırım , nerde hata yapıyorum ?
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
TextBox lardaki veriyi alırken yada verirken

TextBox1.Text kullanın
Böylelikle TextBox içinde ne görüyorsanız onu alırsınız.

TextBox1.Value yazarsanız hatalarla karşılaşabilirsiniz.
 
Katılım
21 Aralık 2006
Mesajlar
18
Excel Vers. ve Dili
excel 2000
anlıyorum ama ,text yapınca da ondalıklı sayıları sayı formatında aktarmadı. Normalde başka bir yöntem mi kullanılıyor acaba yani ben tek tek girilen verileri bir kez hesap ederek tabloya aktarmak istiyorum. Bunun için makro ve textbox haricinde bir yöntem kullanmak mı daha uygun ?

formüller ya da topluca hesap eden makrolar exceli şişiriyor...
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Aşağıdaki gibi denediniz mi?

Kod:
Range("A1") = FormatNumber(TextBox1.Text, 2)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
bu kodlada çözemedim , fikri ya da önerisi olan var mı? virüglle ayrılmış ondalıklı sayılar excele sayı formatında aktarılmıyor . Nokta ile ayrılmış olanlarda textbox da ondalıklı olarak algılanmıyor .
VBA da nokta ve virgül kullanımı bu sistemi tasarlayan batı devletlerin kullandığı sistemi içerir. Excelde ise bu işlem parametriktir yani ayarlayabilirsiniz. Bu sebeple VBA da bu durumu dikkate almak zorundasınız.
 
Katılım
21 Aralık 2006
Mesajlar
18
Excel Vers. ve Dili
excel 2000
(biraz önce yanıt yazmıştım ama sanırım gitmemiş , tekrar olursa kusura bakmayın)

Range("A1") = FormatNumber(TextBox1.Text, 2)

şeklinde denedim , sayıformatında algılamadı yine . Hatta normal sayılarıda sayı formatında algılamama başladı. yani .value ile sadece ondalıklı olanlarda sorun çıkartıyordu ...


nokta ve virgül konusunda exceli nasıl VBA formatına getirebilirim ? textbox de virgüllü bir sayı excel tablosuna sayı olarak aktarılmıyor.

bu noktada böyle bir pürüz ile uğraşacağım hiç aklıma gelmezdi , yani hiç makro bilmeden forumunuz yardımı ile birşeyler yapmaya çalışıyorum...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

Kod:
Range("A1") = replace(TextBox1,".",",")
 
Katılım
20 Aralık 2006
Mesajlar
68
Excel Vers. ve Dili
.
Textbox number format problemi

Merhaba aynı problemi ben de yaşıyorum
ekteki dosyada textbox5 ve 7 de rakamlar abuk sabuk gözüküyor ve excele number formatta kaydetmiyor
2 ondalıklı hale nasıl getirebilirim .bir de alttaki 2 text boxta aylık ve toplam kalan borçları göstermek istiyorum
tşk.
 
Üst