پکیج آموزشی ایجاد فایل چندکاربره با سطح دسترسی مشخص
Collapse
X
-
-
کامنت
-
در خصوص بخش اول در اولین فرصت کد چنین امکانی رو در همین تاپیک قرار میدم (با توجه به تفاوت بین ورژن های مختلف در پست های قبلی مطالبی مطرح شده که پیشنهاد میدم مشاهده کنید)
در خصوص بخش دوم سوال اونچه در پکیج گفته شده اصول اولیه و روشی هست که نحوه کار رو نشون بده مواردی مانند امکان ثبت اطلاعات با فرم چیزی که در حال حاضر به ذهنم میرسه یک طراحی یک فرم برای هر نفر به نحوی که با وارد کرد پسورد فرم مربوطه باز بشه و راه حل بهینه تر استفاده از یک فرم اما به نحوی که بر اساس صحت پسورد در شیت مختص کاربر اطلاعات ثبت بشه البته تا شروع به کد نویسی نشه اشاکالات در نمیاد.
sigpic
کامنت
-
درود
در خصوص بخش اول در اولین فرصت کد چنین امکانی رو در همین تاپیک قرار میدم (با توجه به تفاوت بین ورژن های مختلف در پست های قبلی مطالبی مطرح شده که پیشنهاد میدم مشاهده کنید)
در خصوص بخش دوم سوال اونچه در پکیج گفته شده اصول اولیه و روشی هست که نحوه کار رو نشون بده مواردی مانند امکان ثبت اطلاعات با فرم چیزی که در حال حاضر به ذهنم میرسه یک طراحی یک فرم برای هر نفر به نحوی که با وارد کرد پسورد فرم مربوطه باز بشه و راه حل بهینه تر استفاده از یک فرم اما به نحوی که بر اساس صحت پسورد در شیت مختص کاربر اطلاعات ثبت بشه البته تا شروع به کد نویسی نشه اشاکالات در نمیاد.
ولی من خیلی از کد نویسی چیزی بلد نیستم
میشه راهنمایی بیشتری بفرمایید
این کار شما خیلی خوبه و عالی خیلی پروزه کاری منو جلو انداخت حتما در اون از شما نام خواهم بردکامنت
-
sigpic
کامنت
-
متاسفانه امکان راهنمایی در چند خط وجود نداره با توجه به اینکه آشنایی کمی با vba داریدکه به علت گستردگی مطلب هست اما اگر پیگیر باشید مطالب آموزشی خیلی خوبی در زمینه vba در انجمن هست که به شما کمک خواهد کرد در جزوه هم حتی الامکان در خصوص نحوه کار کد ها بحث کردم که با مطالعه اون بیشتر با روند کد نویسی آشنا میشید سعی میکنم برای موردی که مطرح کردید کدهای لازم رو بنویسم اما همونطور که گفتم روش های گفته شده فی البداهه و تنها ایده بود و تا زمانی که خودم شروع نکنم به نوشتن نمیدونم چقدر عملی باشه شاید هم راه ساده تری برای کار باشه به هر حال پیگیر باشید جوابتون رو میگیرید
برای من مهم ثبت اطلاعاته که بتونم در تاریخ های مشخص وارد کنم و بتونم خروجی بگیرم ازشون در ضمن قابلیت برگشت به گذشته هم داشته باشه مثلا بتونم اطلاعات چند ماه قبل را را بتونم ببینم با وارد کردن یک تاریخکامنت
-
درود
در خصوص سوالی که دوستان مطرح کردند مبنی بر اینکه برای کاربر بیش از یک شیت در نظر بگیریم دو راهکار به ذهنم رسید
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(user, Range("List"), 2, 0) Then
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "Welcome" And ws.Name <> "Protectdata" Then
On Error GoTo handler
If user = Mid(ws.Name, 1, Application.WorksheetFunction.Find("-", ws.Name, 1) - 1) Then
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
کامنت
-
درود
در خصوص سوالی که دوستان مطرح کردند مبنی بر اینکه برای کاربر بیش از یک شیت در نظر بگیریم دو راهکار به ذهنم رسید
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(user, Range("List"), 2, 0) Then
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "Welcome" And ws.Name <> "Protectdata" Then
On Error GoTo handler
If user = Mid(ws.Name, 1, Application.WorksheetFunction.Find("-", ws.Name, 1) - 1) Then
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
ولی نشد اصلا باز نمشد و فقط ادمین باز میشدکامنت
-
کامنت
-
کامنت
-
-
کامنت
کامنت