Textbox , Ondalık Sayı Formatı Hakkında

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Merhabalar,
Userformda değerler normal görünmesine rağmen excel sayfasına , Textbox'a virgüllü olduğu zaman metin olarak aktarıyor, virgülsüz olduğunda sayı formatı olarak sorunsuz aktarıyor. Bu da hesaplamalarımda yanlış sonuçlara sebebiyet vermekte:-( Textboxlardan , excele aktarma kodlarım şöyle ;

Kod:
Private Sub CommandButton4_Click()

With Sheets("AL")
Satır = .Range("B65536").End(3).Row + 1 ' a sütunundaki son dolu satırı bulup bir sonraki satıra aşağıdaki işlemi yapar


Sheets("AL").Range("B3").Value = TextBox1.Value
Sheets("AL").Range("D3").Value = TextBox2.Value
Sheets("AL").Range("B4").Value = TextBox3.Value
Sheets("AL").Range("D4").Value = TextBox4.Value
Sheets("AL").Range("B5").Value = TextBox5.Value
Sheets("AL").Range("D5").Value = TextBox6.Value
Sheets("AL").Range("B6").Value = TextBox7.Value
Sheets("AL").Range("D6").Value = TextBox8.Value
End Sub
Forumda yapmış olduğum araştırma neticesinde şu şekilde bir düzenleme yapmaya çalıştım fakat yine olmadı.
Kod:
Sheets("AL").Range("B3").NumberFormat = "#,##0.00"
Sheets("AL").Range("B3").Value = CDbl(TextBox1.Text)

Sheets("AL").Range("D3").NumberFormat = "#,##0.00"
Sheets("AL").Range("D3").Value = CDbl(TextBox2.Text)
Yaklaşık 120 adet Textbox nesnesi var.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Kod:
Private Sub UserForm_Initialize()
TextBox1.Text = Format(TextBox1.Text, "#,##")
TextBox2.Text = Format(TextBox2.Text, "#,##")
End Sub
Bu şekilde de olmadı, nerede yanlış yapıyorum:???:
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Textbox nesnesinde sıkça karşılaşılan bir durumdur.

Textboxlara virgül yerine nokta yazarsanız ondalıklı değerler doğru olarak hücreye aktarılacaktır. Ya da kod içinde bu durumu hallederek hücreye aktarım yapabilirsiniz.

Örnek;

Kod:
Private Sub CommandButton1_Click()
    Range("A1").Value = Replace(TextBox1.Value, ",", ".")
End Sub
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,356
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
"CDbl" dönüşümü de istediğinizi yapacaktır.


Test:


Kod:
[a1] = CDbl(TextBox1.Text)
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Sayın Korhan ve Zeki Bey,
İlginize çok teşekkür ederim. Korhan Bey'in önerisini tüm textboxlar için değiştiriyorum. Deneme sayfamda denedim oldu gibi:bravo::bravo::mutlu::mutlu:
 

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
Sayın Korhan ve Zeki Bey,
İlginize çok teşekkür ederim. Korhan Bey'in önerisini tüm textboxlar için değiştiriyorum. Deneme sayfamda denedim oldu gibi:bravo::bravo::mutlu::mutlu:
Zeki beyinki yabana atılacak cinsten değil.Ben onu kullanıyorum.
 

katip16487

Altın Üye
Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
Altın Üyelik Bitiş Tarihi
17-03-2025
Private Sub CommandButton1_Click()
RowCount = Worksheets("verigiris").Range("a1").CurrentRegion.Rows.Count
With Worksheets("verigiris").Range("a1")
.Range("c1").Value = ComboBox1.Value
.Range("c2").Value = ComboBox2.Value
.Range("c3").Value = TextBox1.Value
.Range("c4").Value = TextBox2.Value
.Range("c6").Value = TextBox3.Value
.Range("b7").Value = ComboBox3.Value
.Range("b8").Value = ComboBox4.Value
.Range("b9").Value = ComboBox5.Value
.Range("b10").Value = ComboBox6.Value
.Range("b11").Value = ComboBox7.Value
.Range("c13").Value = ComboBox8.Value
.Range("c14").Value = ComboBox9.Value
.Range("E4").Value = TextBox4.Value
.Range("E5").Value = TextBox5.Value
.Range("E6").Value = TextBox6.Value
.Range("E7").Value = TextBox7.Value
.Range("E8").Value = TextBox8.Value
.Range("E9").Value = TextBox9.Value
.Range("G5").Value = TextBox10.Value
.Range("G6").Value = TextBox11.Value
.Range("G7").Value = TextBox12.Value
.Range("G8").Value = TextBox13.Value
.Range("G9").Value = TextBox14.Value
Unload Me

MsgBox "Veriler tabloda ilgili yerlere aktarıldı.", vbOKOnly + vbInformation, "U Y A R I"

End With

End Sub


şeklinde başlangıç aşamasında olan bir KAYDET butonum var, daha epey bi textbox ekleyeceğim, tüm textbox'lara ise sayı girişi yapılacak ve bu sayılar excel sayfasında ilgili yerlere aktarıldığında excel hesaplama yapacak.
Bu hali ile verileri ilgili excel hücrelerine girdiğim şekilde aktarıyorum, ben textbox'a ondalık ayracı olarak (,) ile giriş yapılabilsin istiyorum.
Bunun tüm textboxlara ve bundan sonra ekleyeceğim textboxlara uygulanmasını nasıl sağlarım.

Yukarıdaki verilen kodu nereye yazmalıyım.

Saygılarımla....
 
Üst