ایجاد محدودیت در ورود اطلاعات در سلول

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • esrafil2006

    • 2013/12/22
    • 48
    • 38.00

    ایجاد محدودیت در ورود اطلاعات در سلول

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

    Last edited by esrafil2006; 2014/12/09, 13:43.
  • Ali Parsaei
    مدير تالارتوابع اکسل

    • 2013/11/18
    • 1522
    • 71.67

    #2
    سلام،
    من يک مقدارش را بلدم! .... با کد زير اگر يکي از سلهاي بين H7 تا H400 انتخاب شود و در سلول ستون I هم عرض آن نوشته شده باشد: "غير فعال" يک INPUTBOX ظاهر مي شود که از شما رمز مي خواهد. اشکالش اين است که کد INPUTBOX جهت رمز را ننوشته ام! بلد نيستم! يادم رفته!
    کد:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim C As Range
    For Each C In Range("H7:H400")
    If Selection = C And C.Offset(0, 1).Value = "غير فعال" Then
    InputBox "رمز را وارد کنيد"
    Exit For
    End If
    Next
    End Sub
    [SIGPIC][/SIGPIC]

    کامنت

    • Javid Mokhtari
      مدير تالار ويژوال بيسيك

      • 2012/01/16
      • 1212
      • 73.00

      #3
      فایل رو که نتونستم دانلود کنم ولی در حالت کلی و با کمی کد اختصاصی می تونید به شکل زیر بنویسید:
      کد PHP:
      Dim C As Rangepass As Integer
      pass 
      123
      For Each C In Range("H7:H400")
      If 
      Selection And C.Offset(01).Value "غيرفعال" Then
          
      If pass InputBox("رمز را وارد کنيد"Then
            MsgBox 
      "دستورات را وارد کنيد"
          
      Else
            
      MsgBox "رمز اشتباه است"
          
      End If

      Exit For
      End If
      Next 
      [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
      بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

      شرکت در دوره:
      [/FONT][/SIZE]
      [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
      [/B][/FONT][/SIZE]
      [/CENTER]
      [/INDENT]
      [/FONT]

      کامنت

      • esrafil2006

        • 2013/12/22
        • 48
        • 38.00

        #4
        جواب نداد ! میشه بیشتر راهنمایی کنید؟

        کامنت

        • Javid Mokhtari
          مدير تالار ويژوال بيسيك

          • 2012/01/16
          • 1212
          • 73.00

          #5
          نوشته اصلی توسط esrafil2006
          جواب نداد ! میشه بیشتر راهنمایی کنید؟
          در محیط vb به جای متن "غیرفعال" یک کاراکتر انگلیسی بگذارید و کد را اجرا کنید .اگر حل شد باید کاراکتر "ی" را به شکل صحیح وارد کنید
          [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
          بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

          شرکت در دوره:
          [/FONT][/SIZE]
          [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
          [/B][/FONT][/SIZE]
          [/CENTER]
          [/INDENT]
          [/FONT]

          کامنت

          • Amir Ghasemiyan

            • 2013/09/20
            • 4598
            • 100.00

            #6
            نوشته اصلی توسط esrafil2006
            جواب نداد ! میشه بیشتر راهنمایی کنید؟
            احتمال داره ويژوال كلا با فارسي مشكل داشته باشه
            پيشنهاد ميكنم بجاي كلمات فارسي از كدهاي اسكي استفاده كنيد. سرچ كنيد تو انجمن راهنماش هست

            کامنت

            • esrafil2006

              • 2013/12/22
              • 48
              • 38.00

              #7
              سلام مجدد
              من فایل را مجددا گذاشتم ، این مرحله ای که گفتید را هم انجام دادم ، نشد یه ببرسی میفرمائید تشکر
              نمونه.xlsm

              کامنت

              • Amir Ghasemiyan

                • 2013/09/20
                • 4598
                • 100.00

                #8
                نوشته اصلی توسط esrafil2006
                سلام مجدد
                من فایل را مجددا گذاشتم ، این مرحله ای که گفتید را هم انجام دادم ، نشد یه ببرسی میفرمائید تشکر
                [ATTACH]5210[/ATTACH]

                سلام
                دوست عزيز شما كه هيچ كدي وارد نكردين
                نميدونم درست متوجه سوالتون شدم يا نه. لطفا ببينيد همون چيزي هست كه مد نظرتونه يا خير
                کد:
                Private Sub Worksheet_Change(ByVal Target As Range)
                Dim C As Range, pass As Integer
                pass = 123
                If Target.Column = 8 And IsNumeric(Target) Then Target.Offset(0, 5).Value = ChrW(1601) & ChrW(1593) & ChrW(1575) & ChrW(1604)
                If Target.Column = 13 And Target.Value = ChrW(1594) & ChrW(1740) & ChrW(1585) & ChrW(32) & ChrW(1601) & ChrW(1593) & ChrW(1575) & ChrW(1604) Then
                    If pass = InputBox(ChrW(1585) & ChrW(1605) & ChrW(1586) & ChrW(32) & ChrW(1585) & ChrW(1575) & ChrW(32) & ChrW(1608) & ChrW(1575) & ChrW(1585) & ChrW(1583) & ChrW(32) & ChrW(1705) & ChrW(1606) & ChrW(1610) & ChrW(1583)) Then
                        Rem put your codes here
                      MsgBox ChrW(1583) & ChrW(1587) & ChrW(1578) & ChrW(1608) & ChrW(1585) & ChrW(1575) & ChrW(1578) & ChrW(32) & ChrW(1585) & ChrW(1575) & ChrW(32) & ChrW(1608) & ChrW(1575) & ChrW(1585) & ChrW(1583) & ChrW(32) & ChrW(1705) & ChrW(1606) & ChrW(1610) & ChrW(1583)
                    Else
                      MsgBox ChrW(1585) & ChrW(1605) & ChrW(1586) & ChrW(32) & ChrW(1575) & ChrW(1588) & ChrW(1578) & ChrW(1576) & ChrW(1575) & ChrW(1607) & ChrW(32) & ChrW(1575) & ChrW(1587) & ChrW(1578)
                    End If
                End If
                End Sub
                فایل های پیوست شده

                کامنت

                • esrafil2006

                  • 2013/12/22
                  • 48
                  • 38.00

                  #9
                  بله همینه فقط یه مشکل هست که در وضعیت فعال نباید کاربر بتونه مبلغ پرداخت را که وارد کرد تغییر بده به طور کلی پرداخت مبلغ = وضعیت فعال= عدم تغییر مبلغ ثبت شده مگر با وراد کردن رمز برای دسترسی روی سلول
                  تشکر از لطف جنابعالی

                  کامنت

                  • Amir Ghasemiyan

                    • 2013/09/20
                    • 4598
                    • 100.00

                    #10
                    نوشته اصلی توسط esrafil2006
                    بله همینه فقط یه مشکل هست که در وضعیت فعال نباید کاربر بتونه مبلغ پرداخت را که وارد کرد تغییر بده به طور کلی پرداخت مبلغ = وضعیت فعال= عدم تغییر مبلغ ثبت شده مگر با وراد کردن رمز برای دسترسی روی سلول
                    تشکر از لطف جنابعالی
                    اون قسمت قفل كردنشو ديگه خودتون بنويسيد. من فقط فعال و غير فعال كردنشو براتون درست كردم
                    بعد از اون خط سبز رنگ كدهاتون رو بنويسيد

                    کامنت

                    • esrafil2006

                      • 2013/12/22
                      • 48
                      • 38.00

                      #11
                      با سپاس از شما جناب استاد قاسمیان تا اینجا که توضیح دادید ، قدم به قدم پیش رفتم و یاد گرفتم ولی این آموزش آخر هم بزارید پای آموزش چون من نمیدونم با کدوم کد کار را ادامه بدم ، توضیح بدید ممنون میشم

                      کامنت

                      • Amir Ghasemiyan

                        • 2013/09/20
                        • 4598
                        • 100.00

                        #12
                        نوشته اصلی توسط esrafil2006
                        با سپاس از شما جناب استاد قاسمیان تا اینجا که توضیح دادید ، قدم به قدم پیش رفتم و یاد گرفتم ولی این آموزش آخر هم بزارید پای آموزش چون من نمیدونم با کدوم کد کار را ادامه بدم ، توضیح بدید ممنون میشم

                        ببينين من يك نكته كلي عرض كنم خدمتتون.
                        قفل كردن سلول ها تا زماني كه از قسمت review گزينه protect sheet رو نزنين بي معني هست. در واقع كاري كه شما بايد انجام بدين اينه كه همه سلول هايي كه ميخواين قفل بشن رو ابتدا lock كنيد و سپس protect كنيد.
                        بصورت پيشفرض همه سلول ها بصورت lock هستند. شما بايد ابتدا كل شيت رو انتخاب كنيد و از format cell در تب آخر تيك مربوط به lock رو حذف كنيد. حالا كدتون به اين صورت بايد اصلاح بشه:
                        در ابتداي كد قفل شيت رو غير فعال كنيد. كدها رو اجرا كنيد. هر جا نياز بود سلول قفل بشه اين كد رو استفاده كنيد تا سلول lock بشه و سپس در انتهاي كد شيت رو مجددا قفل كنيد
                        کد:
                        Target.Offset(0, -5).Locked = True
                        اميدوارم تونسته باشم منظورمو برسونم

                        کامنت

                        چند لحظه..