محدود کردن سلول به الگوی خاص

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ghorbat
    • 2015/12/15
    • 2

    [حل شده] محدود کردن سلول به الگوی خاص

    سلام
    خسته نباشید
    من میخوام یک ستون مثلا ستون a سلول هاش فقط یک فرمت خاص رو بگیره و اگر غیر از این بود و رفت سلول بعدی مثلا رنگش عوض بشه یا پیغام خاصی بده با مسیج باکس
    فرمتم اینه yyyy123456-7 یعنی اول چهار تا حرف انگلیسی بعد شش تا عدد یه فاصله بعد یه عدد دیگه البته این حروف و اعداد هر بار تغییر میکنند شرط اینه که چهار رقم اول حرف انگلیسی باشه بعد 7 رقم با اون فرمت
    اگه میشه راهنکمایی کنید
    باتشکر
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام

    فایل پیوست را بررسی کنید

    کد PHP:
    Sub Worksheet_Change(ByVal Target As Range)

        If 
    Not Intersect(TargetMe.Range("A2:A10000")) Is Nothing And Target <> "" Then
        
        T 
    0

    For 1 To 4
    If Not IsNumeric(Mid(TargetI1)) Then
    1
    End 
    If
    Next

    0

    For 5 To 10
    If IsNumeric(Val(Mid(TargetJ1))) Then
    1
    End 
    If
    Next


    If And And Mid(Target111) = "-" And IsNumeric(Val(Mid(Target121))) Then

    Target
    .Interior.ColorIndex 0

    Else

    Target.Interior.ColorIndex 3

    MsgBox 
    "INPUT ERROR" vbNewLine "Same" vbNewLine "XXXX123456-7"

    End If

    End If 
    فایل های پیوست شده

    کامنت

    • Amir Ghasemiyan

      • 2013/09/20
      • 4598
      • 100.00

      #3
      سلام دوست عزیز
      لطفا برای موضوعاتی که ایجاد میکنید عنوان مناسبتری انتخاب بفرمایید.
      عنوان موضوع اصلاح شد.


      و اما در خصوص روش حل علاوه بر روشی که دوستمون خدمتتون ارائه دادن میتونین از این کدها نیز استفاده کنید.
      برای استفاده از کدهای زیر شما نیاز دارید ابتدا یک کتابخانه به کتابخانه های vba اضافه کنید. برای اینکار وارد محیط ویژوال بیسیک شوید از تب tools گزینه references رو انتخاب کنید و در پنجره ای که باز میشه تیک مربوط به گزینه Microsoft VBScript Regular Expressions 5.5 رو فعال کنید و سپس ok رو بزنید.
      حالا میتونین از کدهای زیر استفاده کنید. (دقت بفرمایید که کدها را در شیت مربوطه باید قرار دهید نه در ماژول)
      فایل نمونه نیز پیوست شد.

      کد:
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Column = 1 Then
          checkregex (Target.Value)
      End If
      End Sub
      
      
      Function checkregex(regval As String)
          Dim regEx As New RegExp
          Dim strPattern As String: strPattern = "^[A-Za-z]{4}[0-9]{6}\-[0-9]"
          Dim Myrange As Range
          With regEx
              .Global = True
              .MultiLine = True
              .IgnoreCase = False
              .Pattern = strPattern
          End With
          If Not regEx.Test(regval) Then MsgBox ("Not matched")
      End Function

      فایل های پیوست شده
      Last edited by Amir Ghasemiyan; 2017/07/28, 07:08.

      کامنت

      • ghorbat
        • 2015/12/15
        • 2

        #4
        مرسی از پاسختوون

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4598
          • 100.00

          #5
          خواهش میکنم

          لطفا اگه پاسخ سوالتون رو دریافت کردین تاپیک رو بصورت حال شده در بیارین

          کامنت

          چند لحظه..