پکیج آموزشی ایجاد فایل چندکاربره با سطح دسترسی مشخص

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

    • 2014/03/17
    • 151
    • 70.00

    #46
    نوشته اصلی توسط ~M*E*H*D*I~
    چه خطایی

    تو پيوست عكسشو گذاشتم
    اين خط
    اكسلم 2007 هست

    this workbook.sheets(user).delete

    کامنت

    • ~M*E*H*D*I~
      • 2011/10/19
      • 4376
      • 70.00

      #47
      نوشته اصلی توسط mohamadali110
      تو پيوست عكسشو گذاشتم
      اين خط
      اكسلم 2007 هست

      this workbook.sheets(user).delete
      این که فقط دیباگ یک خط کد هست ، خطای کد تو توسط یک پیغام نشون داده میشه

      sigpic

      کامنت

      • nazi nazi

        • 2015/02/17
        • 101
        • 61.00

        #48
        سلام
        من فایل را خریداری کردم
        میخواستم بدونم اگه هر یوزر دو تا شیت بخواد باید چکار کنم
        و این که هر یوزر برای ورود اطلاعاتش از یک فرم که دارای کلید های ثبت و لغو تصحیح باشه استفاده کنه

        کامنت

        • ~M*E*H*D*I~
          • 2011/10/19
          • 4376
          • 70.00

          #49
          نوشته اصلی توسط nazi nazi
          سلام
          من فایل را خریداری کردم
          میخواستم بدونم اگه هر یوزر دو تا شیت بخواد باید چکار کنم
          و این که هر یوزر برای ورود اطلاعاتش از یک فرم که دارای کلید های ثبت و لغو تصحیح باشه استفاده کنه
          درود
          در خصوص بخش اول در اولین فرصت کد چنین امکانی رو در همین تاپیک قرار میدم (با توجه به تفاوت بین ورژن های مختلف در پست های قبلی مطالبی مطرح شده که پیشنهاد میدم مشاهده کنید)

          در خصوص بخش دوم سوال اونچه در پکیج گفته شده اصول اولیه و روشی هست که نحوه کار رو نشون بده مواردی مانند امکان ثبت اطلاعات با فرم چیزی که در حال حاضر به ذهنم میرسه یک طراحی یک فرم برای هر نفر به نحوی که با وارد کرد پسورد فرم مربوطه باز بشه و راه حل بهینه تر استفاده از یک فرم اما به نحوی که بر اساس صحت پسورد در شیت مختص کاربر اطلاعات ثبت بشه البته تا شروع به کد نویسی نشه اشاکالات در نمیاد.

          sigpic

          کامنت

          • nazi nazi

            • 2015/02/17
            • 101
            • 61.00

            #50
            نوشته اصلی توسط ~M*E*H*D*I~
            درود
            در خصوص بخش اول در اولین فرصت کد چنین امکانی رو در همین تاپیک قرار میدم (با توجه به تفاوت بین ورژن های مختلف در پست های قبلی مطالبی مطرح شده که پیشنهاد میدم مشاهده کنید)

            در خصوص بخش دوم سوال اونچه در پکیج گفته شده اصول اولیه و روشی هست که نحوه کار رو نشون بده مواردی مانند امکان ثبت اطلاعات با فرم چیزی که در حال حاضر به ذهنم میرسه یک طراحی یک فرم برای هر نفر به نحوی که با وارد کرد پسورد فرم مربوطه باز بشه و راه حل بهینه تر استفاده از یک فرم اما به نحوی که بر اساس صحت پسورد در شیت مختص کاربر اطلاعات ثبت بشه البته تا شروع به کد نویسی نشه اشاکالات در نمیاد.
            سلام ممنونم جواب دادید
            ولی من خیلی از کد نویسی چیزی بلد نیستم
            میشه راهنمایی بیشتری بفرمایید
            این کار شما خیلی خوبه و عالی خیلی پروزه کاری منو جلو انداخت حتما در اون از شما نام خواهم برد

            کامنت

            • ~M*E*H*D*I~
              • 2011/10/19
              • 4376
              • 70.00

              #51
              نوشته اصلی توسط nazi nazi
              سلام ممنونم جواب دادید
              ولی من خیلی از کد نویسی چیزی بلد نیستم
              میشه راهنمایی بیشتری بفرمایید
              این کار شما خیلی خوبه و عالی خیلی پروزه کاری منو جلو انداخت حتما در اون از شما نام خواهم برد
              متاسفانه امکان راهنمایی در چند خط وجود نداره با توجه به اینکه آشنایی کمی با vba داریدکه به علت گستردگی مطلب هست اما اگر پیگیر باشید مطالب آموزشی خیلی خوبی در زمینه vba در انجمن هست که به شما کمک خواهد کرد در جزوه هم حتی الامکان در خصوص نحوه کار کد ها بحث کردم که با مطالعه اون بیشتر با روند کد نویسی آشنا میشید سعی میکنم برای موردی که مطرح کردید کدهای لازم رو بنویسم اما همونطور که گفتم روش های گفته شده فی البداهه و تنها ایده بود و تا زمانی که خودم شروع نکنم به نوشتن نمیدونم چقدر عملی باشه شاید هم راه ساده تری برای کار باشه به هر حال پیگیر باشید جوابتون رو میگیرید

              sigpic

              کامنت

              • nazi nazi

                • 2015/02/17
                • 101
                • 61.00

                #52
                نوشته اصلی توسط ~M*E*H*D*I~
                متاسفانه امکان راهنمایی در چند خط وجود نداره با توجه به اینکه آشنایی کمی با vba داریدکه به علت گستردگی مطلب هست اما اگر پیگیر باشید مطالب آموزشی خیلی خوبی در زمینه vba در انجمن هست که به شما کمک خواهد کرد در جزوه هم حتی الامکان در خصوص نحوه کار کد ها بحث کردم که با مطالعه اون بیشتر با روند کد نویسی آشنا میشید سعی میکنم برای موردی که مطرح کردید کدهای لازم رو بنویسم اما همونطور که گفتم روش های گفته شده فی البداهه و تنها ایده بود و تا زمانی که خودم شروع نکنم به نوشتن نمیدونم چقدر عملی باشه شاید هم راه ساده تری برای کار باشه به هر حال پیگیر باشید جوابتون رو میگیرید
                در مورد فرم یک نمونه در جایی دیدم که در بالای اون تب هایی بود و برای هر واحد جدا بود هر واحد اطلاعاتش را وارد میکرد و همه در یک جا ثبت میشد
                برای من مهم ثبت اطلاعاته که بتونم در تاریخ های مشخص وارد کنم و بتونم خروجی بگیرم ازشون در ضمن قابلیت برگشت به گذشته هم داشته باشه مثلا بتونم اطلاعات چند ماه قبل را را بتونم ببینم با وارد کردن یک تاریخ

                کامنت

                • ~M*E*H*D*I~
                  • 2011/10/19
                  • 4376
                  • 70.00

                  #53
                  درود

                  در خصوص سوالی که دوستان مطرح کردند مبنی بر اینکه برای کاربر بیش از یک شیت در نظر بگیریم دو راهکار به ذهنم رسید
                  1- تعیین شیت های هر کاربر در شیت protectdata به نحوی که با پیمایش ردیف هر کاربر شیت مربوطه باز بشه
                  2- استفاده از یک قاعده نامگذاری برای شیت ها

                  کد زیر برای راه حل دوم نوشته شده دوستان باید این کد رو جایگزین کدی که برای کلید login یوزر فرم یک نوشته شده کنند


                  کد PHP:
                  Private Sub CommandButton1_Click()
                  Dim PassWord As String
                  Dim user 
                  As String
                  Dim ws 
                  As Worksheet
                  user 
                  ComboBox1.Value
                  PassWord 
                  TextBox1.Value
                  If user "" Or PassWord "" Then
                  MsgBox 
                  "Enter name and password"
                  Exit Sub
                  End 
                  If
                  If 
                  PassWord WorksheetFunction.VLookup(userRange("List"), 20Then

                  For Each ws In ActiveWorkbook.Worksheets
                  If ws.Name <> "Welcome" And ws.Name <> "Protectdata" Then
                  On Error 
                  GoTo handler
                  If user Mid(ws.Name1Application.WorksheetFunction.Find("-"ws.Name1) - 1Then
                  Sheets
                  (ws.Name).Visible xlSheetVisible
                  End 
                  If
                  End If
                  handler:
                  If 
                  Err 1004 Then
                  MsgBox 
                  "The name of sheet is wrong"
                  Exit Sub
                  End 
                  If
                  Next
                  MsgBox 
                  "Password Accepted"
                  UserForm1.Hide
                  ElseIf counter <= 3 Then
                  MsgBox 
                  "Try Again"
                  counter counter 1
                  TextBox1
                  .Value ""
                  Exit Sub
                  Else
                  MsgBox "Password Not Accepted, Workbook will close"
                  Unload Me
                  ThisWorkbook
                  .Close
                  End 
                  If
                  ComboBox1.Value ""
                  TextBox1.Value ""
                  End Sub 
                  اما برای اینکه کدها به درستی کار کنند قواعدی باید رعایت بشه

                  در فایل مشاهده میکنید که نام شیت ها به صورت User1,User2,User3 نامگذاری شده با این فرض که هر کاربر ممکنه تعداد شیت بیشتری داشته باشه نامگذاری به شیوه زیر خواهد بود

                  User1-1
                  User2-1
                  User3-1

                  بنابر این گر user1 شیت های دیگری نیاز داشته باشه به شکل زیر خواهد بود

                  User1-2
                  User1-3
                  و....

                  برای سایر کاربران هم به همین نحو

                  در صورتی که این قاعده راعایت نشه پیغام زیر صادر خواهد شد


                  کد PHP:
                  The name of sheet is wrong 
                  سوالی بود در خدمتم

                  sigpic

                  کامنت

                  • nazi nazi

                    • 2015/02/17
                    • 101
                    • 61.00

                    #54
                    نوشته اصلی توسط ~M*E*H*D*I~
                    درود

                    در خصوص سوالی که دوستان مطرح کردند مبنی بر اینکه برای کاربر بیش از یک شیت در نظر بگیریم دو راهکار به ذهنم رسید
                    1- تعیین شیت های هر کاربر در شیت protectdata به نحوی که با پیمایش ردیف هر کاربر شیت مربوطه باز بشه
                    2- استفاده از یک قاعده نامگذاری برای شیت ها

                    کد زیر برای راه حل دوم نوشته شده دوستان باید این کد رو جایگزین کدی که برای کلید login یوزر فرم یک نوشته شده کنند


                    کد PHP:
                    Private Sub CommandButton1_Click()
                    Dim PassWord As String
                    Dim user 
                    As String
                    Dim ws 
                    As Worksheet
                    user 
                    ComboBox1.Value
                    PassWord 
                    TextBox1.Value
                    If user "" Or PassWord "" Then
                    MsgBox 
                    "Enter name and password"
                    Exit Sub
                    End 
                    If
                    If 
                    PassWord WorksheetFunction.VLookup(userRange("List"), 20Then

                    For Each ws In ActiveWorkbook.Worksheets
                    If ws.Name <> "Welcome" And ws.Name <> "Protectdata" Then
                    On Error 
                    GoTo handler
                    If user Mid(ws.Name1Application.WorksheetFunction.Find("-"ws.Name1) - 1Then
                    Sheets
                    (ws.Name).Visible xlSheetVisible
                    End 
                    If
                    End If
                    handler:
                    If 
                    Err 1004 Then
                    MsgBox 
                    "The name of sheet is wrong"
                    Exit Sub
                    End 
                    If
                    Next
                    MsgBox 
                    "Password Accepted"
                    UserForm1.Hide
                    ElseIf counter <= 3 Then
                    MsgBox 
                    "Try Again"
                    counter counter 1
                    TextBox1
                    .Value ""
                    Exit Sub
                    Else
                    MsgBox "Password Not Accepted, Workbook will close"
                    Unload Me
                    ThisWorkbook
                    .Close
                    End 
                    If
                    ComboBox1.Value ""
                    TextBox1.Value ""
                    End Sub 
                    اما برای اینکه کدها به درستی کار کنند قواعدی باید رعایت بشه

                    در فایل مشاهده میکنید که نام شیت ها به صورت User1,User2,User3 نامگذاری شده با این فرض که هر کاربر ممکنه تعداد شیت بیشتری داشته باشه نامگذاری به شیوه زیر خواهد بود

                    User1-1
                    User2-1
                    User3-1

                    بنابر این گر user1 شیت های دیگری نیاز داشته باشه به شکل زیر خواهد بود

                    User1-2
                    User1-3
                    و....

                    برای سایر کاربران هم به همین نحو

                    در صورتی که این قاعده راعایت نشه پیغام زیر صادر خواهد شد


                    کد PHP:
                    The name of sheet is wrong 
                    سوالی بود در خدمتم
                    سلام
                    ممنون از جوابتون
                    من این کارو کردم ولی یوزر ه دیگه باز نمیشدن
                    البته من یوزرهای جدید با نامهای دیگه ساخته بودم مثلا qa یا qc
                    ولی نشد اصلا باز نمشد و فقط ادمین باز میشد

                    کامنت

                    • ~M*E*H*D*I~
                      • 2011/10/19
                      • 4376
                      • 70.00

                      #55
                      نوشته اصلی توسط nazi nazi
                      سلام
                      ممنون از جوابتون
                      من این کارو کردم ولی یوزر ه دیگه باز نمیشدن
                      البته من یوزرهای جدید با نامهای دیگه ساخته بودم مثلا qa یا qc
                      ولی نشد اصلا باز نمشد و فقط ادمین باز میشد
                      نام کاربری چی گذاشتید؟

                      sigpic

                      کامنت

                      • nazi nazi

                        • 2015/02/17
                        • 101
                        • 61.00

                        #56
                        نوشته اصلی توسط ~m*e*h*d*i~
                        نام کاربری چی گذاشتید؟
                        qa
                        qc
                        pm
                        factory
                        اینها ار گذاشتم ممکنه باز واحد های دیگه ای اضافه بشه

                        کامنت

                        • ~M*E*H*D*I~
                          • 2011/10/19
                          • 4376
                          • 70.00

                          #57
                          نوشته اصلی توسط nazi nazi
                          qa
                          qc
                          pm
                          factory
                          اینها ار گذاشتم ممکنه باز واحد های دیگه ای اضافه بشه

                          خب شما باید شیت هارو به صورت زیر نام گذاری کنید
                          qc-1
                          pm-1
                          factory-1
                          اگر qc شیت دیگه ای نیاز داشت qc-2 و....

                          sigpic

                          کامنت

                          • nazi nazi

                            • 2015/02/17
                            • 101
                            • 61.00

                            #58
                            نوشته اصلی توسط ~M*E*H*D*I~

                            خب شما باید شیت هارو به صورت زیر نام گذاری کنید
                            qc-1
                            pm-1
                            factory-1
                            اگر qc شیت دیگه ای نیاز داشت qc-2 و....
                            نمیشه
                            حتی یوزر جدید هم ساختم باز وارد یوزر ها نمیشه

                            کامنت

                            • ~M*E*H*D*I~
                              • 2011/10/19
                              • 4376
                              • 70.00

                              #59
                              نوشته اصلی توسط nazi nazi
                              نمیشه
                              حتی یوزر جدید هم ساختم باز وارد یوزر ها نمیشه
                              ایمیل کنید فایل رو برام تا چک کنم

                              mehdi.vatanparast@exceliran.com

                              sigpic

                              کامنت

                              • nazi nazi

                                • 2015/02/17
                                • 101
                                • 61.00

                                #60
                                نوشته اصلی توسط ~M*E*H*D*I~
                                ایمیل کنید فایل رو برام تا چک کنم

                                mehdi.vatanparast@exceliran.com
                                فرستاده شد

                                کامنت

                                چند لحظه..