فرم لاگین در اکسل چگونه طراحی می شود؟

ما تا اینجا یاد گرفتیم که چگونه در اکسل یوزرفرم (UserForm) طراحی کنیم همچنین یاد گرفتیم چطور کاری کنیم که با باز شدن اکسل، فقط Userform برای کاربر نشان داده شود و تمام شیت ها از دید کاربر مخفی بماند.اکنون در این آموزش رایگان ساخت فرم لاگین در اکسل می خواهیم نحوه طراحی و ایجاد فرم لاگین در اکسل را یاد گرفته و کاری کنیم که کاربر بوسیله یک فرم Login و با وارد کردن نام کاربری و رمز عبور، فایل اکسل نمایش داده شود.

ساخت فرم لاگین در اکسل به چه دردی میخورد؟

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

شروع طراحی فرم لاگین در اکسل

حال براساس آموزش های دو پست قبل، یک فرم Login مانند فرم زیر ایجاد کنید و نام UserForm لاگین را “LoginForm” قرار بدین.سپس ما به یک دیتابیس نیاز داریم تا اطلاعات کاربران شامل نام کاربری و رمز ورود را آنجا ذخیره کنیم.برای همین یک شیت با نام “Users” ایجاد کنید و یک جدول با دو ستون به نام های نام کاربری(ستونA) و رمز ورود(ستون B) ایجاد کنید.سپس نام باکس مربوط به نام کاربری را به username و باکس مربوط به رمز ورود را به pass تغییر بدین.مانند شکل شماره 2 .

فرم مربوط به Login کاربر در اکسل
شکل شماره 1 – فرم مربوط به Login کاربر در اکسل
ذخیره اطلاعات ورود کاربران
شکل شماره 2 – ذخیره اطلاعات ورود کاربران در شیت مخصوص

ثبت نام کاربر جدید با استفاده از فرم لاگین در اکسل:

در ایجاد فرم لاگین در اکسل اولین کاری که باید انجام شود این است که کاربر باید با یک نام کاربری و پسورد ثبت نام کند.اگر به شکل شماره 2 دقت کنید ثبت اطلاعات کاربران باید در ستون A و B و در آخرین ردیف خالی ثبت شود.پس اولین کار ما این است که باید موقعیت آخرین ردیف خالی جدول را پیدا کنیم.اینجا انواع روش وجود دارید که هرکدام می تواند مزایا و معایبی داشته باشد.ولی ما سعی می کنیم ساده ترین کدنویسی را انجام دهیم.

پیدا کردن آخرین ردیف خالی :

برای اینکه ما بتوانیم آخرین ردیف خالی رو پیدا کنیم می توانیم از کد زیر استفاده کنیم :

حتما بخوانید:   لیست کردن نام شیت ها در ComboBox با کد ساده VBA
  • WorksheetFunction : برای اینکه بتوان در محیط VBA به توابع داخلی اکسل دسترسی داشت می توان از این تابع استفاده کرد.
  • CountA : حتما با این تابع آشنا هستید.این تابع همون تابعی هست که داخل شیت های اکسل برای شمارش تعداد سلول های حاوی مقدار(عددی و متنی) استفاده می کردیم که بواسطه کد WorksheetFunction توانستیم به آن دسترسی داشته باشیم.
  • Range(“A:A”) : اشاره به ستون A دارد.

کاری که کد بالا انجام می دهد این است که میاد در ستون A تعداد سلول هایی که پر هستند را برای ما می شمارد که نتیجه این کد عدد 2 خواهد بود و این یعنی آخرین ردیف پر در ردیف سوم قرار دارد..اگر دقت کنید اولین سلول پر درستون A در ردیف سوم بوده و ما هنوز یک واحد کم داریم.پس برای جبران این مقدار، نتیجه کد را به اضافه ی 1 می کنیم تا حاصل کد عدد 3 شود.اما برای راحتی کار ما می توانیم نتیجه را داخل یک متغیر ذخیره کنیم تا در ادامه کدنویسی ها خیلی راحت تر بشه ازش استفاده کرد.پس کد رو به شکل زیر عوض می کنیم.که در آن Dim یک عبارت ثابت برای تعریف متغیر می باشد و عبارت lastrw نام متغیر می باشد که به دلخواه هر نامی را برای آن می توانید انتخاب کنید

حتما بخوانید:   مخفی کردن WorkBook و نمایش UserForm در اکسل

ثبت اطلاعات کاربر جدید در دیتابیس :

حالا وقت آن شده تا وقتی کاربر اطلاعات خود را در باکس های نام کاربری و رمز عبور وارد کرد آن اطلاعات در دیتابیس ذخیره شود.بنابراین ما کد خودمان را به شکل زیر تکمیل می کنیم:

ما با استفاده از تابع Cells می توانیم با دادن شماره سطر و شماره ستون به یک سلول اشاره کنیم.در کد بالا و در خط 3 ما می گوییم سلولی که شماره سطرش lastrow و شماره ستونش 1 باشد مقدارش برابر است با مقداری که داخل باکس username تایپ شده و در خط 4 هم می گوییم سلولی که شماره سطرش دوباره lastrow و شماره ستونش 2 باشد مقدارش برابر است با مقداری که داخل باکس pass تایپ شده است.

جلوگیری از ثبت نام کاربر تکراری :

در ساخت فرم لاگین در اکسل برای اینکه اشتباهات آتی هنگام ثبت نام و مشابه نبودن اطلاعات کاربران پیش نیاید بهتر است که اجازه ثبت “نام کاربری” تکراری را ندهیم.پس باید قبل از اینکه کاربر بتواند ثبت نام کند اول باید بررسی کنیم که آیا این نام کاربری قبلا وجود داشته است یا خیر.درنتیجه کد خودمان را به شکل زیر تکمیل می کنیم:

کاری که در کدهای بالا انجام دادیم این است که یک متغیر به نام countuser ایجاد کردیم سپس در خط 3 با تابع CountA مقدار تایپ شده در باکس username را درستون A جستجو کردیم و آن را به متغیر countuser اختصاص دادیم.حال اگر مقداری مانند عبارت تایپ شده در باکس نام کاربری در ستون A پیدا شود نتیجه عددی بزرگتر از صفر خواهد.پس ما در خط 5 بررسی می کنیم ببینیم آیا مقدار countuser عددی بزرگتر از صفر هست یا نه.اگر بزرگتر از صفر باشد یعنی چنین کاربری از قبل وجود دارد.پس یک مسیج باکس ظاهر می شود و ما را از این موضوع مطلع می کند.در خط 7 با استفاده از کد Exit Sub کلا از کدها خارج می شویم و اجازه نمی دهیم بقیه کدها اجرا شود.

حتما بخوانید:   اجرای خودکار ماکرو در اکسل

خب کدنویسی مربوط به ثبت نام کاربر جدید در بحث فرم لاگین در اکسل تمام شد.حالا کدهای بالا را کپی کرده و روی دکمه کاربر جدید دبل کلیک کنید تا وارد محیط کدنویسی بشید.حالا بدون هیچ کلیک اضافی، دکمه Ctrl+V را بزنید تا کدها کپی شود.سپس کد زیر را در رویداد Open مربوط به ThisWorkBook کپی کنید:

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



منبع :

stackoverflow.com

اشتراک گذاری:
مطالب زیر را حتما بخوانید

پاسخی بگذارید