fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa en en fa fa en en fa fa en en fa en en fa en fa fa fa fa fa fa fa fa fa fa fa en en fa en it fa en fa en fa en ceb fa en en fa fa fa fa fa fa fa fa en fa en fa ar fa mzn fa mzn fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa en en en fa fa fa fa fa fa fa fa fa en en en fa en fa fa
احتمالا شما هم از آندسته افرادی هستید که می خواهید نحوه ورود کاربران و نیز دسترسی آنها به شیت های موجود در یک فایل اکسل را تحت کنترل خود درآورید ؛ در مطالب قبلی سایت در خصوص پسورد گذاری شیت از طریق Vba گفتیم که چگونه می توان برای هر کاربر یک پسورد اختصاصی تعیین کرد. اما در این پست قصد دارم تا شما را با نحوه ساخت فرم لاگین در اکسل آشنا کنم تا از طریق آن بتوانید مدیریت دسترسی بهتری را بر روی فایل هایی که بصورت مشترک ؛ چند کاربر در حال کار بر روی آن هستند ؛ اعمال کنید.
در این مثال آموزشی هدف این است که پس از اجرای فایل اکسل یک فرم مطابق آنچه در تصویر زیر ملاحظه می کنید باز شود و یک نام کاربری و کلمه عبور را از کاربر درخواست نماید ؛ حالا مطابق آنچه در بخش مدیریت فایل تعریف شده است هر کاربر بتواند وارد شیت مخصوص به خود شود و سایر شیت ها از دید وی پنهان بمانند.
شیت های مورد نیاز را ایجاد کنید!
برای شروع کار در یک فایل اکسل 6 شیت ایجاد کردیم ؛ یک شیت برای مدیر که در آن نام کاربری و کلمه عبور و شیت فعال برای آنها مشخص گردیده و 5 شیت دیگر که هریک محیط کاری برای هر کاربر خواهد بود.
فرم لاگین را ایجاد کنید!
برای ایجاد فرم لاگین روی شیت مدیر راست کلیک کرده و از منوی باز شده گزینه View Code را انتخاب می کنیم ؛ با انجام اینکار وارد محیط کدنویسی در نرم افزار اکسل خواهید شد.
پس از ورود به محیط کدنویسی ؛ بایستی از منوی Insert گزینه Userform را انتخاب کنید ؛ در تصویر زیر انجام کار را ملاحظه می کنید:
پس از انتخاب UserForm ؛ یک فرم خام به نمایش در خواهد آمد و این همان فرمی است که به آن برای ساخت فرم لاگین نیاز داریم ؛ به تصویر زیر نگاه کنید:
اجزاء فرم را درج کنید!
حالا نوبت آن می رسد که با استفاده از Toolbox یا همان جعبه ابزار قرار گرفته در کنار فرم که تصویر آن را در بالا ملاحظه می کنید ؛ آبجکت های مورد نیاز را روی فرم قرار دهیم ؛ این آبجکت ها مطابق عبارتند از :
یک عدد کمبو باکس (لیست کشویی) برای انتخاب نام کاربری
یک عدد لیبل برای نوشتن “نام کاربری”
یک عدد لیبل برای نوشتن “کلمه عبور”
یک عدد تکست باکس (جعبه متن) برای دریافت پسورد
یک عدد image (عکس) برای نماد کاربر
یک عدد image (عکس) برای نماد پسورد
یک عدد دکمه برای عملیات ورود
یک عدد دکمه برای انصراف از ورود
ابتدا دو عدد آبجکت نصویر را با استفاده از ابزار image روی فرم قرار می دهیم و سپس با مراجعه به خواص تصویر که در سمت چپ پنجره قرار گرفته است از طریق انتخاب آدرس در ویندوز ؛ عکس هایی را بافرمت Bmp انتخاب می کنیم.
در مرحله بعد دو عدد لیبل را جهت نمایش نام کاربری و کلمه عبور بر روی فرم درج می کنیم  و Caption آنها را مطابق آنچه در تصویر زیر ملاحظه می کنید تغییر میدهیم:
در ادامه یک عدد کمبوباکس در مقابل لیبل نام کاربری قرار می دهیم تا کاربران بتوانند ؛ نام کاربری خود را از داخل لیست انتخاب کنند ؛ منبع این کمبوباکس را با استفاده از تعیین یک محدوده و نام گذاری آن فراهم میکنیم ؛ یعنی به شیت 1 که همان شیت مدیر است مراجعه میکنیم و محدوده ای را که نام کاربران در داخل آن قرار دارد با کلیک چپ موس انتخاب می کنیم ؛ حالا از تب Formulas روی گزینه Define Name کلیک می کنیم.
پس از کلیک بر روی این گزینه پنجره Define Name باز می شود که میبایست نامی را برای محدوده انتخابی خود قرار دهیم ؛ که در اینجا Users انتخاب شده است ؛ که در ادامه از این محدوده بعنوان سورس کمبوباکس استفاده خواهیم کرد.
حالا با زدن کلیدهای ترکیبی Alt+F11 از روی کیبورد ؛ به محیط کدنویسی در اکسل برمیگردیم ؛ کمبوباکس را انتخاب می کنیم و از بخش Properties بخش MachRequired را True و RowSource را برابر با Users یا همان محدوده تعریف شده که در بالا توضیح دادیم ؛ قرار می دهیم.
در مرحله بعد نوبت به استفاده از یک TextBox یا جعبه متن برای دریافت پسورد یا همان کلمه عبور می رسد ؛ این آبجکت را هم از طریق ToolBox روی فرم خود درج می کنیم و خاصیت PasswordChar را علامت * ستاره قرار می دهیم تا هنگام تایپ پسورد توسط کاربر ؛ آن از دید سایرین مخفی بماند.
آخرین آبجکت هایی که باید روی فرم قرار گیرند ؛ دو عدد دکمه یا CommandButton هستند که یکی جهت ورود و دیگری جهت انصراف از ورود به برنامه مورد استفاده قرار می گیرد ؛ مثل سایر آبجکت هایی که تا این مرحله ترسیم کردیم این دو را نیز روی فرم قرار می دهیم ؛ سپس خاصیت Caption را به “ورود” و “انصراف” تغییر میدهیم.
کدهای لازم را بنویسید!
روی دکمه “ورود” دابل کلیک کنید تا وارد محیط کدنویسی دکمه شده و کدهایی را که در تصویر زیر ملاحظه می کنید ، بصورت دقیق و عینأ وارد کنید ؛ در صورت درج هرگونه کاراکتر اضافه احتمال مواجه شدن با خطا بالا خواهد رفت ؛ پس به این مسأله به اندازه کافی دقت داشته باشید.
تذکر مهم : همیشه کدها را در بین عبارت های Private Sub و End Sub بنویسید و از درج مجددأ این دو عبارت در کدهای خود اجتناب کنید!
روی دکمه انصراف دابل کلیک کنید و کدهای زیر را در داخل آن بنویسید:
در ادامه مطابق تصویر زیر در حالی که در محیط کدنویسی اکسل قرار دارید ؛ روی WorkBook دابل کلیک کرده و در پنجره بازشده کدهای زیر را قرار دهید :
از کدهای نوشته شده حفاظت کنید!
برای حفاظت کردن و جلوگیری از دسترسی و تغییر کدهای نوشته شده توسط کاربران بایستی آنها را پسورد گذاری کنیم ؛ برای انجام اینکار کافی است ؛ در محیط کدنویسی اکسل ؛ از منوی Tools گزینه VbaProject Properties را انتخاب می کنیم.
پس از انتخاب این گزینه پنجره VbaProject – Project Properties به نمایش در می آید ؛ در این پنجره به تب Protection رفته و تیک گزینه Lock Project for Viewing را میزنیم تا امکان مشاهده کدها مسدود گردد ؛ حالا در کادر Password یک پسورد بنویسید در کادر Confrim Password نیز مجددأ پسورد وارد شده را تایپ و در نهایت روی دکمه Ok کلیک کنید.
حالا متناسب با شیت تعریف شده برای هر کاربر ؛ پس از درج اطلاعات مربوط به نام کاربری و کلمه عبور ؛ هنگام ورود به فایل ؛ تنها شیت تعریف شده برای کاربر به نمایش در خواهد آمد و سایر شیت ها از دید آن کاربر مخفی خواهد بود. در نهایت فایل خود را با فرمت Xlsm ذخیره سازی کنید.