صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 13

موضوع: Data Validation تاریخ در VBA

  1. #1


    آخرین بازدید
    2024/02/08
    تاریخ عضویت
    April 2011
    نوشته ها
    384
    امتیاز
    245
    سپاس
    415
    سپاس شده
    225 در 123 پست
    سطح اکسل
    67.00 %

    Data Validation تاریخ در VBA

    با سلام
    خدمت دوستان
    در فرم VBA خودم میخوام کاربر فقط بتونه تاریخ رو بصورت xxxx/xx/xx(روز/ماه/سال) وارد کنه

    یعنی حتما سال 4 رقمی باشه و ماه و روز 2 رقم باشی

    (اگه بصورت 1394/1/11 یا 94/01/11 یا 1394/1/11یا هر جور دیگه وارد کرد خطا بده)
    فرمت درست :1394/01/11
    این هم فایل
    انجمن اکسل ایران
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.

  2.  

  3. #2


    آخرین بازدید
    یک ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,472
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    سلام دوست عزیز
    از این قطعه کد کمک بگیرید
    کد:
    a = Split("1394/11/13", "/")
    If Len(a(0)) <> 4 Or Len(a(1)) <> 2 Or Len(a(2)) <> 2 Then MsgBox "error"
    برای تکمیل میتونین عدد بودن رو هم چک کنید
    کد:
    If IsNumeric(a(0)) = False Or IsNumeric(a(1)) = False Or IsNumeric(a(2)) = False Then MsgBox "error"

  4. سپاس ها (3)


  5. #3


    آخرین بازدید
    2024/02/08
    تاریخ عضویت
    April 2011
    نوشته ها
    384
    امتیاز
    245
    سپاس
    415
    سپاس شده
    225 در 123 پست
    سطح اکسل
    67.00 %

    ممنون
    من اون تاریخ رو برای مثال زدم.
    میخوام کاربر هر تاریخی رو بتونه وارد کنه ولی فرمت تاریخ حتما بضورت xxxx/xx/xxباشه .
    (توی فایل ، textbox5 "مورخه فیش " میخوام این محدودیت رو داشته باشه)

  6. #4


    آخرین بازدید
    یک ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,472
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    نقل قول نوشته اصلی توسط atadaliran نمایش پست ها
    ممنون
    من اون تاریخ رو برای مثال زدم.
    میخوام کاربر هر تاریخی رو بتونه وارد کنه ولی فرمت تاریخ حتما بضورت xxxx/xx/xxباشه .
    منم برای مثال اون تاریخ رو گذاشتم
    شما بجای تاریخ یا مقدار سلول رو باید بدین یا مقدار تکست باکس یا هر جایی که ورودی هست


  7. #5


    آخرین بازدید
    2022/06/26
    تاریخ عضویت
    January 2013
    محل سکونت
    شیراز
    نوشته ها
    1,198
    امتیاز
    3248
    سپاس
    1,566
    سپاس شده
    3,182 در 795 پست
    سطح اکسل
    84.00 %

    tarkibe code aghaye ghasemian ro ba in code bebin be khastat miresonatet

    کد:
    Private Sub TextBox1_Change()
    Dim TextStr As String
    
            TextStr = TextBox1.Text
    
            If (Len(TextStr) = 5 And Mid(TextStr, 5, 1) <> "/") Then
                TextStr = Left(TextStr, 4) & "/" & Right(TextStr, 1)
            ElseIf (Len(TextStr) = 8 And Mid(TextStr, 8, 1) <> "/") Then
                TextStr = Left(TextStr, 7) & "/" & Right(TextStr, 1)
            End If
    
            TextBox1.Text = TextStr
    End Sub
    
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim TextStr As String
    
            TextStr = TextBox1.Text
    'If Len(TextStr) <> 10 Then
    'MsgBox "wrong format"
    'TextBox1 = ""
    'End If
    a = Split(TextStr, "/")
    If Len(a(0)) <> 4 Or Len(a(1)) <> 2 Or Len(a(2)) <> 2 Then
    MsgBox "error"
    TextBox1 = ""
    End If
    End Sub
    در پناه خداوندگار ایران زمین باشید و پیروز


  8. #6


    آخرین بازدید
    2024/02/08
    تاریخ عضویت
    April 2011
    نوشته ها
    384
    امتیاز
    245
    سپاس
    415
    سپاس شده
    225 در 123 پست
    سطح اکسل
    67.00 %

    ممنون از هر دو بزرگوار
    فقط اقا امین من دقیقا همون کد شما رو که گذاشتم از این قسمت خطا میگرفت:
    If Len(a(0)) <> 4 Or Len(a(1)) <> 2 Or Len(a(2)) <> 2 Then
    و کار نکرد
    بعد اومد اینجوریش که کردم درست شد :
    کد HTML:
    Private Sub TextBox1_Change()
    Dim TextStr As String
    
            TextStr = TextBox1.Text
    
            If (Len(TextStr) = 5 And Mid(TextStr, 5, 1) <> "/") Then
                TextStr = Left(TextStr, 4) & "/" & Right(TextStr, 1)
            ElseIf (Len(TextStr) = 8 And Mid(TextStr, 8, 1) <> "/") Then
                TextStr = Left(TextStr, 7) & "/" & Right(TextStr, 1)
            End If
    
            TextBox1.Text = TextStr
    End Sub
    
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim TextStr As String
    
            TextStr = TextBox1.Text
    If Len(TextStr) <> 10 Then
    MsgBox "wrong format"
    TextBox1 = ""
    End If
    'a = Split(TextStr, "/")
    'If Len(a(0)) <> 4 Or Len(a(1)) <> 2 Or Len(a(2)) <> 2 Then
    'MsgBox "error"
    'TextBox1 = ""
    'End If
    End Sub

    و درست هم کار کرد و مشکلی نداشت.
    فقط در یک صورت کار نمیکنه: که کاربر تاریخ رو اشتباه تایپ کنه و بعد به فیلد دیگه ای نره (Event Exit اجرا نشه) و روی دکمه ذخیره کلیک کنه.(در این حالت تاریخ اشتباه ذخیره میشه)
    مشکل بالا رو چظور رفع کنم که در هنگام ذخیره هم چک کنه؟
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip Final.zip اطلاعات (235.7 کیلو بایت, 19 نمایش)
    ویرایش توسط a.dal65 : 2016/04/05 در ساعت 11:55

  9. سپاس ها (1)


  10. #7


    آخرین بازدید
    2022/06/26
    تاریخ عضویت
    January 2013
    محل سکونت
    شیراز
    نوشته ها
    1,198
    امتیاز
    3248
    سپاس
    1,566
    سپاس شده
    3,182 در 795 پست
    سطح اکسل
    84.00 %

    با درود

    تو دکمه کلیدت. که مثلا کار ثبت رو انجام میده. همیشه ما اولش میایم برسی هامونو انجام میدیم . مثلا اگر تکست باکسی خالی بود اجرا نشه و ....

    در همون کلید چک کن در اول خطوط کد هات که فرمت وارد شده درسته یا نه. اگر نبود exit sub و end if دیگه بقیه کد هات اجرا نمیشن. چون از ساب خارج میشی
    در پناه خداوندگار ایران زمین باشید و پیروز


  11. #8


    آخرین بازدید
    2024/02/08
    تاریخ عضویت
    April 2011
    نوشته ها
    384
    امتیاز
    245
    سپاس
    415
    سپاس شده
    225 در 123 پست
    سطح اکسل
    67.00 %

    ممنون
    من اینو به اول گزینه ثبت اضافه کردم ولی کار نکرد
    کد HTML:
    Dim a As String
    a = Split(TextBox5, "/")
    If Len(a(0)) <> 4 Or Len(a(1)) <> 2 Or Len(a(2)) <> 2 Then
    MsgBox "error"
    Exit Sub
    End If
    به a گیر میده:

    ---------------------------
    Microsoft Visual Basic for Applications
    ---------------------------
    Compile error:

    Expected array
    ---------------------------
    OK Help
    ---------------------------
    ویرایش توسط a.dal65 : 2016/04/06 در ساعت 09:08

  12. #9


    آخرین بازدید
    یک ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,472
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    دوست عزیز چرا اصرار دارین کدها رو با هم ترکیب کنید؟
    کدی که من نوشتم خودش کامله نیاز به ترکیب با کدهای دیگه نیست
    این کل کدی که شما نیاز دارین برای textbox1
    کد:
    Private Sub TextBox1_Change()
    a = Split(TextBox1.Text, "/")
    If Len(a(0)) <> 4 Or Len(a(1)) <> 2 Or Len(a(2)) <> 2 Then MsgBox "error"
    If IsNumeric(a(0)) = False Or IsNumeric(a(1)) = False Or IsNumeric(a(2)) = False Then MsgBox "error"
    End Sub

  13. سپاس ها (2)


  14. #10


    آخرین بازدید
    2024/02/08
    تاریخ عضویت
    April 2011
    نوشته ها
    384
    امتیاز
    245
    سپاس
    415
    سپاس شده
    225 در 123 پست
    سطح اکسل
    67.00 %

    با سلام
    آقا امیر ، کد شما رو در فایل گذاشتم ولی باز هم همون ارور قبلی رو گرفت از این قسمت خطا میگیره:
    If Len(a(0)) <> 4 Or Len(a(1)) <> 2 Or Len(a(2)) <> 2 Then
    یه نگاه بندازید بهش ممنون میشم .(به شیت datauser برید و دکمه ثبت قسط رو بزنید و یه چیزی در تکس باکس 5 بنویسید)


    والا من هم اصرار ندارم شلوغش کنم و دوست هم ندارم شلوغ بشه
    ولی مجاب به انجام این کار شدم. علتش هم این هست که وقتی کاربر تاریخ رو اشتباه تایپ میکنه اگه به textbox بعدی نره (یعنی exit اجرا نشه ) میتونه تاریخ رو اشتباه ذخیره کنه .
    من فقط میخوام خواسته ام محقق بشه
    ممنون.
    فايل هاي پيوست شده فايل هاي پيوست شده


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مشكل در Data validation
    توسط mohsen_ak در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 2
    آخرين نوشته: 2016/01/14, 21:50
  2. Data validation
    توسط SIGNAL در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 2
    آخرين نوشته: 2015/10/09, 14:44
  3. Data Validation
    توسط hosein.mirjalili در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 2
    آخرين نوشته: 2015/06/05, 14:38
  4. If در Data validation
    توسط Alireza در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 4
    آخرين نوشته: 2013/12/04, 12:43
  5. validation Data
    توسط alishabanipour در انجمن پیوت تیبل و پايگاه داده - Pivot Table and Database
    پاسخ ها: 5
    آخرين نوشته: 2012/03/08, 00:02

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است