TEXTBOX BACKSPACE yada DELETE İLE SİLME HATASI

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
UserForm içerisinde yer alan TextBox'lara sayısal veri girişi yapmaktayım.

Örneğin 123,45 şeklinde veri girişi yapıldıktan sonra hatalı olduğu düşünüp BACKSPACE veya DELETE ile tüm veri silindikten sonra fazladan BACKSPACE yada DELETE'ye basılması halinde UYGULAMA hata veriyor.

UserForm'da yer alan tüm textbox'lara bu hatanın önlenmesi için yazılabilecek kod nedir ve nereye yazılmalıdır?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kullandığınız bir kod bloğu buna sebep oluyordur. Örnek dosya paylaşırsanız deneme yapılabilir..
 

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
İlginize teşekkür ederim.

tbdavadeğeri textbox'ı içinde yer alan veriyi silince hata verdiğinde DEBUG ile düzeltmeye girdiğimde bu kısımda hata alıyorum.

Aynı şekilde diğer textbox'larda da aynı hatayı alıyorum.

TextBox'lardaki tüm veri silinmiş olsa bile programın hata vermemesini, gerekirse silindikten sonra textbox'tan çıkılması halinde 0 yazmasını istiyorum.

Saygılarımla...

Private Sub tbdavadeğeri_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
tbreddeğeri.Value = Format(tbdavadeğeri.Value - tbkabuldeğeri.Value, "#,##0.00")
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya paylaşmadığınız için afaki cevap vermek durumundayım.

C++:
Private Sub tbdavadeğeri_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    On Error GoTo Son
    tbreddeğeri.Value = Format(tbdavadeğeri.Value - tbkabuldeğeri.Value, "#,##0.00")
    Exit Sub
Son: tbreddeğeri.Value = 0
End Sub
 

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
Dosya paylaşmakta sıkıntı yaşıyorum, çünkü Excel dosyam yaklaşık 50 sayfadan oluşuyor, onun için kusura bakmayın.

Buna rağmen sorunumu çözmeye yardımcı olduğunuz için teşekkür ederim.

0 yazdığında düzeltmesi zor olduğu için kodu aşağıdaki şekilde yapmak suretiyle çalıştırdım.

On Error GoTo Son
tbreddeğeri.Value = Format(tbdavadeğeri.Value - tbkabuldeğeri.Value, "#,##0.00")
Exit Sub
Son: tbdavadeğeri.SetFocus

İlginize teşekkür ederim.

Peki TextBox1 ve TextBox2'ye rakam girişi yapılırken TextBox3'de otomatik olarak hesap yapmayı sağlıyorum. KeyUp olayını bu nedenle kullanıyorum.

Amacım TextBox2'ye TextBox1'de yazılı olan veriden daha büyük veri girişi yapıldığında uyarı vermesi ve girişi engellemesini istiyorum.

Bu kodu tbkabuldeğeri'nin Change'sine yazdım olmadı, KeyUp'una yazdım olmadı, Exit'ine yaptım olmadı.

Bakındım ancak bulamadım, veri girişi sadece ondalıklı sayı şeklinde olmak zorunda, rakamların sayı değerlerini karşılaştırmakta sıkıntı oluyor anladımığım kadarı ile.

İlginize tekrar teşekkür ederim.

İf tbkabuldeğeri.Value > tbdavadeğeri.Value Then
MsgBox “KABUL DEĞERİ, DAVA DEĞERİ'nden BÜYÜK OLAMAZ.“, ”UYARI“
Else
tbreddeğeri.Value = Format(tbdavadeğeri.Value - tbkabuldeğeri.Value, "#,##0.00")
End İf
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Alternatif:
Kod:
on error resume next
tbreddeğeri.Value = Format(tbdavadeğeri.Value - tbkabuldeğeri.Value, "#,##0.00")
If tbdavadeğeri.Value = "" Then tbreddeğeri.Value = 0
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Kod:
If tbkabuldeğeri.Value > tbdavadeğeri.Value Then
Msgbox "KABUL DEĞERİ, DAVA DEĞERİ'nden BÜYÜK OLAMAZ."
exit sub
end if
on error resume next
tbreddeğeri.Value = Format(tbdavadeğeri.Value - tbkabuldeğeri.Value, "#,##0.00")
If tbdavadeğeri.Value = "" Then tbreddeğeri.Value = 0
 
Son düzenleme:

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
İlginize teşekkür ederim, ancak bunu yine KeyUp'a yazdığımda tbkabuldeğeri isimli textbox'a her tıklamada uyarı çıkıyor ne yazı ki?

Örnek veriyorum, tbdavadeğeri 100 iken tbkabuldeğerine 10. yazdıktan sonra yazılacak ilk rakamın 0'dan büyük olması halinde hata vermesini istiyorum,
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosyadan kastımız şudur...

Benzer sorunu oluşturan nesneler oluşturup tek sayfadan oluşan basit bir dosya simüle ederek paylaşabilirsiniz..
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Keyup sorun çıkartıyor, Aşağıdaki kodu işinize yarar mı?
Kod:
Private Sub tbreddeğeri_Enter()
If CDbl(tbkabuldeğeri.Value) > CDbl(tbdavadeğeri.Value) Then
MsgBox "KABUL DEĞERİ, DAVA DEĞERİ'nden BÜYÜK OLAMAZ."
tbdavadeğeri.Value = Empty
tbdavadeğeri.SetFocus
Exit Sub
End If
tbreddeğeri.Value = Format(CDbl(tbdavadeğeri.Value) - CDbl(tbkabuldeğeri.Value), "#,##0.00")
End Sub
 
Üst