RegExp ile metin kutusunun frmatını A99 olarak doğrulama Hk.

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Textbox içindeki değerin A99 şeklinde (yani ilk karakter A-Z arası harf diğer iki karakter 0-9 arası rakam) yazılmasını istiyorum. Uzunluğu 3 karakteri geçemez.
Eğer bu yazım şekli hatalıysa cmdKONTROL butonuna basınca "Textbox1'de yazım hatası...doğrusu A00 omalıdır. gibi bir mesaj vererek textbox1 e geri dönmesi(Setfocus) nasıl olmalıdır?

Kod:
Private Sub Commandbutton1_Click()
Set deg = CreateObject("VBScript.Regexp")
With deg
    .Pattern = "^[A-Z]{1}\[0-9]{2}$"
    .Global = True
  If .TEST(TextBox1) = False Then
    MsgBox "İstenen Format A00 Şeklindedir."
    Set deg = Nothing
    TextBox1.SetFocus
    Exit Sub
  End If
End With
Set deg = Nothing
End Sub
şeklinde denedim olmadı
 

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Private Sub CommandButton1_Click()
    Dim HARFLER() As Variant
    Dim X As Integer
    HARFLER = Array("A", "B", "C", "Ç", "D", "E", "F", "G", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "Q", "R", "S", "Ş", "T", "U", "Ü", "V", "W", "X", "Y", "Z")
    If TextBox1 <> "" And Len(TextBox1) = 3 And Not IsNumeric(Mid(TextBox1, 1, 1)) Then
    For X = 0 To 30
    If Mid(TextBox1, 1, 1) = HARFLER(X) And Val(Mid(TextBox1, 2, 2)) <= 99 Then
    Exit For
    End If
    Next
    Else
    MsgBox "İstenen format A00 şeklindedir.", vbCritical
    TextBox1.SetFocus
    End If
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sn Korhan hocam, teşekkür ederim.
Yarın deneyeceğim, Alternatif olarak RegEXP li çözüm olursa sevinirm.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

Kod:
Private Sub CommandButton1_Click()
Set deg = CreateObject("VBScript.Regexp")
With deg
    .Pattern = "^[A-Z]{1}[0-9]{2}$"
    .Global = True
  If .TEST(TextBox1) = False Then
    MsgBox "İstenen Format A00 Şeklindedir."
    Set deg = Nothing
    TextBox1.SetFocus
    Exit Sub
  End If
End With
Set deg = Nothing
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Teşekkür ederim sn. MENTEŞOĞLU
 
Üst