Kaç tane (.) olduğunu hangi deyim sayar

Katılım
17 Nisan 2005
Mesajlar
122
Excel Vers. ve Dili
Excel 2010 TR | Excel 2013 TR
Selamlar,

textbox içine girilen (.) değerlerini saymak istiyorum. Kodla nasıl yapabilirim.

Aslında sadece bir (.) değeri girilmesini istiyorum

Örnek:
123.45 (doğru)
123.45.6 (yanlış) => birden fazla (.) varsa uyarı verdireceğim.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
if isnumeric(textbox1.value) Then
   Msgbox "Girdiğiniz değer sayı değil"
   Textbox1.setfocus
End if
işinizi görür ama siz bilirsiniz.
 
Katılım
17 Nisan 2005
Mesajlar
122
Excel Vers. ve Dili
Excel 2010 TR | Excel 2013 TR
ben
if not isnumeric(textbox1.text) then
msgbox "alfanumerik"
end if
yapmış, sonuç alamamıştım bir de isnumeric(textbox1.value) ile deneyeyim.
 
Katılım
17 Nisan 2005
Mesajlar
122
Excel Vers. ve Dili
Excel 2010 TR | Excel 2013 TR
Sayın hsayar,

"1.00" şeklinde girilenlerin yanısıra "1.12.33" gibi girilenleri de numerik olarak kabul ediyor.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
ozaman tek virgüle izin verir o şekilde

451230,15 > formatlı hali 431.230,15 tir

bölgesel yaralardan ondalık yarcını değiştirmelisiniz.
 
Katılım
17 Nisan 2005
Mesajlar
122
Excel Vers. ve Dili
Excel 2010 TR | Excel 2013 TR
Excel decimal nokta olarak (,) kullanıyor, VBA kod kısmında ise (.) biliyorsunuz. benim problemim kod kısmında aritmetik işlem yaptıracak olmamdan kaynaklanıyor. Şimdi işten çıkıp, eve gidiyorum biraz daha kafa yorayım. Bölgesel ayarları değiştirmeden yapmam gerek çünkü.

İlgilendiğiniz için teşekkür ederim.
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Kod:
Private Sub CommandButton1_Click()
For a = 1 To Len(TextBox1)
If Mid(TextBox1, a, 1) = "." Then n = n + 1
Next
If n > 1 Then MsgBox "birden fazla nokta var"
End Sub
 

Korhan Ayhan

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

Alternatif olarak bu kontrol işlemini aşağıdaki kodlar ile yapabilirsiniz. Siz uygularken virgülleri nokta ile değiştirerek kullanabilirsiniz.

Kod:
Private Sub TextBox1_Change()
    Say = Len(TextBox1) - Len(Replace(TextBox1, ",", ""))
    If Say > 1 Then SendKeys "{BS}"
    If Left(TextBox1, 1) = "," Then TextBox1 = "0,"
End Sub
 
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
    Case Asc("0") To Asc("9")
    Case Asc(",")
    Case Else
    KeyAscii = 0: MsgBox "Sadece rakam girebilirsiniz.", vbExclamation, "Dikkat !"
    End Select
End Sub
 
Üst