TextBox'a Ondalık Değer Girebilme

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
Merhabalar.

Yapmış olduğum çalışma içerisinde TextBox'ların Change olayı aşağıdaki gibidir.

Private Sub TextBox1_Change()
Sheets("bilgigirisi").Range("B4").NumberFormat = "#,##0.00"
Sheets("bilgigirisi").Range("B4").Value = CDbl(TextBox1.Value)
TextBox3 = Sheets("bilgigirisi").Range("B6")
TextBox7 = Sheets("bilgigirisi").Range("C9")
TextBox8 = Sheets("bilgigirisi").Range("B10")
TextBox9 = Sheets("bilgigirisi").Range("C11")
TextBox10 = Sheets("bilgigirisi").Range("C12")
End Sub

bilgigirisi sayfasında B4 ve B5 hücrelerine veri girişi yapılmakta, B6 (TextBox3), C9 (TextBox7), B10 (TextBox8), C11 (TextBox9) ve C12 (TextBox10) hücrelerinde ise girilen veriler uyarınca bir takım hesaplamalar yapılmaktadır.

Yazdığım kod ile, TextBox1'e girilen değer B4 hücresine, TextBox2'ye girilen değer B5 hücresine aktarılmakta ve aynı anda B6, C9, B10, C11, C12 hücreleri ile TextBox3, 7, 8, 9, 10'a aktarılmaktadır.

Change olayına bu kodu yazdığım takdirde TextBox1'e ve TextBox2'ye ondalık değer giremiyorum, sadece TAMSAYI değeri girebiliyorum.

UserForm'un initalize kısmına aynı kodları yazdığımda ise ondalık değer girebilmeme rağmen bu defa da TextBox'tan çıkmadığım sürece hesaplamaları otomatik olarak algılamıyor, ancak çıkışta bunu algılıyor.

If TextBox1.Text = 0 Or TextBox1.Text = "" Then
TextBox1.Text = 0
Else
Sheets("bilgigirisi").Range("B4").Value = CDbl(TextBox1.Value)
Sheets("bilgigirisi").Range("B4").NumberFormat = "#,##0.00"
TextBox3 = Sheets("bilgigirisi").Range("B6")
TextBox7 = Sheets("bilgigirisi").Range("C9")
TextBox8 = Sheets("bilgigirisi").Range("B10")
TextBox9 = Sheets("bilgigirisi").Range("C11")
TextBox10 = Sheets("bilgigirisi").Range("C12")
End If

ASLINDA YAPMAK İSTEDİĞİM,
TextBox1 ve 2'ye değer girmeye başladığımda otomatik olarak bilgigirisi sayfasına aktarması ve diğer hesaplamaları da aynı anda diğer textbox'larda göstermesi, ayrıca veri girişi yapılacak textbox'ların BACKSPACE ile veya DELETE ile tamamen değerlerinin silinmesi halinde DEBUG hatası vermemesi için değeri 0 olarak algılamasının sağlanmasını istiyorum.

Ekstra olarak ise TextBox'tan çıkış yaptığımda textbox görünümünün BİNLİK AYRACI bulunan ONDALIKLI sayı olmasını ayarlamaya çalışıyorum.


NOT; Ekte gönderdiğim dosyada herhangi bir sorun yaşamaksızın ondalık girişi yapabiliyorum, ancak yapmış olduğum çalışmada ise hata almaktayım.

Saygılarımla...


USERFORM'un TÜM KODLARI İSE AŞAĞIDAKİ GİBİDİR.

Private Sub CommandButton6_Click()
Unload bilgigirisi
anasayfa.Show
bilgigirisi.Show
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Çarpı ile çıkışı Engelleme
If CloseMode = vbFormControlMenu Then MsgBox "İşiniz bitmiş ise lütfen ANASAYFA'ya DÖN butonunu tıklayınız.": Cancel = True
End Sub

Private Sub UserForm_Activate()
' Tarih ve saat eklentisi
BUGUN.Caption = Date
SAAT.Caption = Time
Do
DoEvents
SAAT = Format(Time, "hh:mm:ss")
Loop
End Sub

Private Sub ComboBox4_Change()
' Görünümü Değiştirme (Görünür veya Görünmez yapma)
If ComboBox4.Text = "Yok" Then
TextBox4.Locked = True
TextBox4.BackColor = &HFFC0C0
TextBox4.ForeColor = &H808000
TextBox4.BackStyle = fmBackStyleTransparent
TextBox4.SpecialEffect = 0
End If
If ComboBox4.Text <> "Yok" Then
TextBox4.Locked = False
TextBox4.BackColor = &HC0FFC0
TextBox4.ForeColor = &H0&
TextBox4.BackStyle = fmBackStyleOpaque
TextBox4.SpecialEffect = 0
End If
End Sub

Private Sub ComboBox8_Change()
' Görünümü Değiştirme (Görünür veya Görünmez yapma)
If ComboBox8.Text = "Yok" Then
TextBox11.Locked = True
TextBox11.BackColor = &HFFC0C0
TextBox11.ForeColor = &H808000
TextBox11.BackStyle = fmBackStyleTransparent
TextBox11.SpecialEffect = 0
End If
If ComboBox8.Text <> "Yok" Then
TextBox11.Locked = False
TextBox11.BackColor = &HC0FFC0
TextBox11.ForeColor = &H0&
TextBox11.BackStyle = fmBackStyleOpaque
TextBox11.SpecialEffect = 0
arabuluculukücretleri.Show
End If
End Sub

Private Sub ComboBox9_Change()
' Görünümü Değiştirme (Görünür veya Görünmez yapma)
If ComboBox9.Text <> "İstinaf" Then
ComboBox10.Locked = True
ComboBox10.BackColor = &HFFC0C0
ComboBox10.ForeColor = &H808000
ComboBox10.BackStyle = fmBackStyleTransparent
ComboBox10.SpecialEffect = 0
ComboBox10.ShowDropButtonWhen = fmShowDropButtonWhenNever
End If
If ComboBox9.Text = "İstinaf" Then
ComboBox10.Locked = False
ComboBox10.BackColor = &HC0FFC0
ComboBox10.ForeColor = &H0&
ComboBox10.BackStyle = fmBackStyleOpaque
ComboBox10.SpecialEffect = 0
ComboBox10.SpecialEffect = 0
ComboBox10.ShowDropButtonWhen = fmShowDropButtonWhenAlways
End If
End Sub

Private Sub CommandButton1_Click()
'Karar Ön İzleme
hükümönizleme.Show
End Sub

Private Sub CommandButton4_Click()
'Arabuluculuk Ücret Tarifesini Görme
arabuluculukücretleri.Show
End Sub

Private Sub CommandButton7_Click()
' Ana Sayfa'ya Dönme
Unload bilgigirisi
anasayfa.Show
End Sub

Private Sub TextBox1_Change()
Sheets("bilgigirisi").Range("B4").NumberFormat = "#,##0.00"
Sheets("bilgigirisi").Range("B4").Value = CDbl(TextBox1.Value)
TextBox3 = Sheets("bilgigirisi").Range("B6")
TextBox7 = Sheets("bilgigirisi").Range("C9")
TextBox8 = Sheets("bilgigirisi").Range("B10")
TextBox9 = Sheets("bilgigirisi").Range("C11")
TextBox10 = Sheets("bilgigirisi").Range("C12")
End Sub

Private Sub TextBox2_Change()
Sheets("bilgigirisi").Range("B5").NumberFormat = "#,##0.00"
Sheets("bilgigirisi").Range("B5").Value = CDbl(TextBox2.Value)
TextBox3 = Sheets("bilgigirisi").Range("B6")
TextBox7 = Sheets("bilgigirisi").Range("C9")
TextBox8 = Sheets("bilgigirisi").Range("B10")
TextBox9 = Sheets("bilgigirisi").Range("C11")
TextBox10 = Sheets("bilgigirisi").Range("C12")
End Sub

Private Sub TextBox3_Change()
TextBox3.Value = Sheets("bilgigirisi").Range("B6").Text
Sheets("bilgigirisi").Range("B6").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox4_Change()
Sheets("bilgigirisi").Range("C7").Value = CDbl(TextBox4.Value)
Sheets("bilgigirisi").Range("C7").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox5_Change()
Sheets("bilgigirisi").Range("B8").Value = CDbl(TextBox5.Value)
Sheets("bilgigirisi").Range("B8").NumberFormat = "#,##0.00"
TextBox8 = Sheets("bilgigirisi").Range("B10")
End Sub

Private Sub TextBox6_Change()
Sheets("bilgigirisi").Range("C8").Value = CDbl(TextBox6.Value)
Sheets("bilgigirisi").Range("C8").NumberFormat = "#,##0.00"
TextBox8 = Sheets("bilgigirisi").Range("B10")
End Sub

Private Sub TextBox7_Change()
TextBox7.Value = Sheets("bilgigirisi").Range("C9").Text
Sheets("bilgigirisi").Range("C9").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox8_Change()
TextBox8.Value = Sheets("bilgigirisi").Range("B10").Text '
Sheets("bilgigirisi").Range("B10").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox9_Change()
TextBox9.Value = Sheets("bilgigirisi").Range("C11").Text
Sheets("bilgigirisi").Range("C11").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox10_Change()
TextBox10.Value = Sheets("bilgigirisi").Range("C12").Text
Sheets("bilgigirisi").Range("C12").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox11_Change()
Sheets("bilgigirisi").Range("C13").Value = CDbl(TextBox11.Value)
Sheets("bilgigirisi").Range("C13").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox12_Change()
Sheets("bilgigirisi").Range("F2").Value = CDbl(TextBox12.Value)
Sheets("bilgigirisi").Range("F2").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox13_Change()
Sheets("bilgigirisi").Range("F3").Value = CDbl(TextBox13.Value)
Sheets("bilgigirisi").Range("F3").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox14_Change()
Sheets("bilgigirisi").Range("F4").Value = CDbl(TextBox14.Value)
Sheets("bilgigirisi").Range("F4").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox15_Change()
Sheets("bilgigirisi").Range("F5").Value = CDbl(TextBox15.Value)
Sheets("bilgigirisi").Range("F5").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox16_Change()
Sheets("bilgigirisi").Range("F6").Value = CDbl(TextBox16.Value)
Sheets("bilgigirisi").Range("F6").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox17_Change()
Sheets("bilgigirisi").Range("F7").Value = CDbl(TextBox17.Value)
Sheets("bilgigirisi").Range("F7").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox18_Change()
Sheets("bilgigirisi").Range("G3").Value = CDbl(TextBox18.Value)
Sheets("bilgigirisi").Range("G3").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox19_Change()
Sheets("bilgigirisi").Range("G4").Value = CDbl(TextBox19.Value)
Sheets("bilgigirisi").Range("G4").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox20_Change()
Sheets("bilgigirisi").Range("G5").Value = CDbl(TextBox20.Value)
Sheets("bilgigirisi").Range("G5").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox21_Change()
Sheets("bilgigirisi").Range("G6").Value = CDbl(TextBox21.Value)
Sheets("bilgigirisi").Range("G6").NumberFormat = "#,##0.00"
End Sub

Private Sub TextBox22_Change()
Sheets("bilgigirisi").Range("G7").Value = CDbl(TextBox22.Value)
Sheets("bilgigirisi").Range("G7").NumberFormat = "#,##0.00"
End Sub


Private Sub UserForm_Initialize()
'Combobox Açılır Hücre Bilgileri
ComboBox1.RowSource = "harçvekalet!$A$12:$A$16"
ComboBox2.RowSource = "hükümörnekleri!$A$3:$A$16"
ComboBox4.RowSource = "hesaplamalar!$T$3:$T$5"
ComboBox5.RowSource = "hesaplamalar!$I$3:$I$13"
ComboBox7.RowSource = "hesaplamalar!$E$3:$E$16"
ComboBox8.RowSource = "hesaplamalar!$M$3:$M$5"
ComboBox9.RowSource = "hesaplamalar!$X$3:$X$6"
ComboBox10.RowSource = "hesaplamalar!$Z$3:$Z$17"
End Sub
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Çok fazla incelemedim ama dosyanızın mevcut halinde textboxlara ondalıklı sayı girilebiliyor.

218010
 

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
Örnek belgede hata almıyorum zaten, sorun yukarıda paylaştığım kodların bulunduğu ve buraya yükleme imkanım olmayan belgemde oluşuyor.

İlginize teşekkürler...
 
Üst