• DİKKAT

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

textboxda virgül sorunu?

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Merhaba arkadaşlar kullandığım programda texboxa değer giriyorum (1,225) bu değeri bir sayfadaki hücreye atıyor (1,225) şeklinde daha sonra bu depğeri başka bir userformda bir textboxa çağırıyorum bu textboxada (1,225) şeklinde geliyor bir butona bastığımda yine bu değeri başka bir sayfadaki hücreye atıyorum bu defa o hücreye (1.225,00) şeklinde yazıyor bundan dolayı yanlış işlem yapıyor bu hatayı nasıl düzeltebilirim yani en sondaki o 1.225,00 değerini yine 1,225 şeklinde atabilmesi için ne yapabilirim???
 
hücre biçimlendirmeden kaynaklanan bir sorun olabilir ya da textbox'ın fomatında sorun olabilir dosyanı eklersen yardım etmeye çalışırız...
 
emre hocam

Ama bu sorunu tam sayılarda yapmıyor (10) , (20), (15) gibi yani değer tam sayı ise bi sorun çıkmıyor sadece ondalıklı sayılarda yapıyor ondalık lı sayıyı kendisi 1.225,00 gibi bir sayıya çeviriyor
 
bence textbox'ın afterupdate ya da exit ya da userform_initialize olaylarında textbox'ın formatlanmasında bir sorun var gibi geliyor dosyayı eklersen bakabiliriz...
 
emre hocam

İlginiz için teşekkür ederim dediklerinizi kontrol edeceğim dosyam çok büyük olduğu için dosyayı gönderemiyorum şayet önerdiğiniz şekilde halledemezsem küçük örnek bir dosya hazırlayıp tekrar sizden yardım isteyebilirim kendinize iyi bakın
 
Merhaba...


Private Sub UserForm_Initialize()
TextBox1 = Format(Sheets(1).Range("a1"), "#.###,00")
End Sub

yukarıda ki kodu deneyin.

Not: "#.###,00" şeklindeki kısmı istediğiniz gibi değiştirebilirsiniz.

iyi çalışmalar
 
VBA ondalık ayracı olarak . yı kullanır.
Biz Türkler Ülke/Bölgesel ayar olarak , kullanırız.
Excel Bölgesel ayarlara göre ayracını belli ettiği için hücrelerde ondalık olarak , kullandığımız halde,
VBA Bölgesel Ayarları dikkate almaz.
Bu yüzden Excel hücresinden veri alırken, veya kullanıcı virgul kullanarak bir giriş yaparken VBA nın sayıyı doğru algılaması için noktaya çevirmemiz gerekir.

1. Hücreden veri alırken;
Kod:
textbox1 = Replace(cells(1,1).value , [COLOR="red"]","[/COLOR] , [COLOR="Red"]"."[/COLOR] )
(Gördüğünüz gibi virgülleri noktaya çevir gibi bir ifade kullandık)

2. Kullanıcının girdiği virgüllü veriyi VBAnın anlayacağı sayıya çevirirken.
Kod:
textbox1 = Replace(textbox1.text , [COLOR="red"]","[/COLOR] , [COLOR="Red"]"."[/COLOR] )
(Gördüğünüz gibi textbox1'de kullanıcının girdiği virgülleri noktaya çevir gibi bir ifade kullandık)
(Bu kodu textboxun exit olayına yazın, isterseniz format'da ekleyebilirsiniz)
 
firstisland ve xxcell hocam her ikinizede göstermiş olduğunuz ilgi ve vermiş olduğunuz bilgi için ayrı ayrı teşekkür ederim
 
Emeğinize sağlık. VBA da ondalık problemini çözmek için, çok araştırdım, çok uğraştım. Bu uygulama net çözüm getirdi.

Admin bu çözümü sayfa başında sabit olarak vermeli. Bir çok kişi bu çözümü arıyor.
 
Son düzenleme:
Geri
Üst