• DİKKAT

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

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...
 
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
 
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?
 
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.
 
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.
 
cevaplar için teşekkür ederim ikiside çalışıyor... elinize sağlık...
 
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....
 
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 ?
 
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.
 
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...
 
Aşağıdaki gibi denediniz mi?

Kod:
Range("A1") = FormatNumber(TextBox1.Text, 2)
 
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.
 
(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...
 
Aşağıdaki gibi deneyin.

Kod:
Range("A1") = replace(TextBox1,".",",")
 
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.
 
Geri
Üst