طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

بازدید: 14990 بازدید
طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

به نام خداوند بخشنده و مهربان ، امروز برای شما عزیزان وسروران گرامی پست آموزشی با عنوان “طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی) ” تهیه نمودیم ، توضیح کدهای کاربردی در این فرم را سعی نمودیم بطور کامل توضیح دهیم لذا در صورت وجود هرگونه سوالات پیرامون دستورات مورد استفاده میتواند آن را در قسمت نظرات پست ارسال نمایید تا در اسرع وقت نسبت به پاسخگویی آن اقدام گردد .

بدون معطلی و فوت وقت بریم سراغ آموزش طراحی و کدنویسی فرم ثبت نام ولاگین در نرم افزار اکسل توسط کدهای وی بی ای .

شروع طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

در قدم اول شما می بایست با ورود به محیط ویژوال بیسیک (کلیدمیانبر Alt + F11) اقدام به ایجاد یک Userform نمایید ، همانند تصویر زیر :

طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

سپس با انتخاب Userform انتخاب شده ، نام و عنوان آن را به Register (ثبت نام) تغییر دهید . همانند تصویر زیر :

طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

سپس با استفاده از ابزارهای Frame ، Textbox و CommandButton فرمی همانند تصویر زیر طراحی کنید :

طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

در ادامه جایگاه هر فیلد(Textbox) را در محیط صفحه گسترده اکسل و داخل شیت جدیدی به نام Register ایجاد و ذخیره میکنیم . همانند تصویر زیر :

طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

حال برروی دکمه Register ایجاد شده برروی فرم Register دابل کلیک کنید تا وارد محیط کدنویسی این Button شوید . کدهای ماکروی زیر کپی و در محیط کدنویسی دکمه Register ، منتقل نمایید .

Dim LastRow As Integer

Dim i As Integer

Dim iCell As Range

LastRow = Sheets(“Register”).Range(“A” & Rows.Count).End(xlUp).Row + 1

    Set iCell = Sheets(“Register”).Range(“A” & LastRow)

With iCell

Offset(0, 0) = TextBox1.Text

Offset(0, 1) = TextBox2.Text

Offset(0, 2) = TextBox3.Text

Offset(0, 3) = TextBox4.Text

Offset(0, 4) = TextBox5.Text

Offset(0, 5) = TextBox6.Text

Offset(0, 6) = TextBox7.Text

End With

    For i = 1 To 7

        Controls(“Textbox” & i).Text = Empty

    Next i

محیط کدنویسی دکمه باتن Register شما پس از منتقل کدهای وی بی ای فوق بصورت زیر خواهد بود :

طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

حال اجازه بدین دستورات فوق را یکبار به زبان فارسی ترجمه کنیم :

Dim LastRow As Integer

Dim i As Integer

Dim iCell As Range

  • تعریف متغیر LastRow از نوع integer به منظور یافتن آخرین ردیف موجود در شیت Register .
  • تعریف متغیر i از نوع integer به منظور ایجاد حلقه پرکاربرد For .
  • تعریف متغیر iCell از نوع Range به منظور جایگزین آخرین سلول موجود در ستون A .

در ادامه دستور زیر را خواهیم داشت :

LastRow = Sheets(“Register”).Range(“A” & Rows.Count).End(xlUp).Row + 1

  • یافتن ردیف آخرین سلول پر ستون A داخل شیت Register و اضافه کردن یک واحد به آن (+۱) .

همچنین دستور زیر :

Set iCell = Sheets(“Register”).Range(“A” & LastRow)

  • تعیین متغیر iCell به عنوان جایگزین آخرین پر در ستون A شیت Register .

و به دنبال آن ثبت داده های موجود در تکست باکس ها به ترتیب در سلول های تعریف شده صفحه گسترده اکسل :

With iCell

Offset(0, 0) = TextBox1.Text

Offset(0, 1) = TextBox2.Text

Offset(0, 2) = TextBox3.Text

Offset(0, 3) = TextBox4.Text

Offset(0, 4) = TextBox5.Text

Offset(0, 5) = TextBox6.Text

Offset(0, 6) = TextBox7.Text

End With

و در پایان حذف محتوای تکست باکس ها پس از درج داده های آنها در صفحه گسترده اکسل :

    For i = 1 To 7

        Controls(“Textbox” & i).Text = Empty

    Next i

در ادامه یک یوزرفرم جدید با نام و عنوان Login ، همانند فرم Register ایجاد میکنیم . فرم لاگینی که بنده برای این آموزش طراحی نمودم را در تصویر زیر مشاهده خواهید نمود :

طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)

با دابل کلیک کردن برروی دکمه Login وارد محیط کدنویسی آن خواهیم شد ، دستورات زیر را کپی و به محیط کدنویسی باتن Login منتقل کنید :

Dim LastRow As Integer

LastRow = Sheets(“Register”).Range(“A” & Rows.Count).End(xlUp).Row

For Each Rng In Sheets(“Register”).Range(“E2:E” & LastRow)

If Rng = TextBox1.Text And Rng.Offset(0, 1) = TextBox2.Text Then

MsgBox “wellcome”

Login.Hide

Worksheets(“Register”).Activate

End If

Next Rng

دستورات فوق را باهم بررسی میکنیم :

Dim LastRow As Integer

LastRow = Sheets(“Register”).Range(“A” & Rows.Count).End(xlUp).Row

  • تعریف متغیر جدیدی به نام LastRow از نوع Integer و یافتن شماره ردیف آخرین سلول پر در ستون A شیت Register .

در ادامه خواهیم داشت :

For Each Rng In Sheets(“Register”).Range(“E2:E” & LastRow)

If Rng = TextBox1.Text And Rng.Offset(0, 1) = TextBox2.Text Then

MsgBox “wellcome”

Login.Hide

Worksheets(“Register”).Activate

End If

Next Rng

  • تعریف حلقه For Each به منظور بررسی یکایک سلول های موجود در محدوده E2 تا آخرین سلول موجود در ستون E .
  • در صورت برابر بودن محتوای هریک از سلول های ستون E با فیلد Username، صحت پسورد ورودی (Textbox2) با محتوای ستون F بررسی گردد که در صورت یکسان بودن به کاربر اجازه ورود داده خواهد شود .

همچنین اگر قصد داشته باشید به محض باز شدن فایل اکسل ، فرم لاگین نمایش داده شود ، می بایست قطعه کد زیر را در بخش Open Workbook فایل اکسل ذخیره نمایید :

Private Sub Workbook_Open()

Login.Show

End Sub

فایل نهایی این آموزش را از قسمت زیر میتوانید دانلود و از دستورات آن الگوبرداری کنید :

در صورت وجود هرگونه سوال پیرامون کدهای مورد استفاده در این فایل و پست آموزشی طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی) ، میتوانید در قسمت نظرات سایت مطرح و یا از تالار گفتمان سایت استفاده نمایید .

سایر لینک های مفید و کاربردی مرتبط با ماکرونویسی در اکسل :

مطالعه بیشتر