طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)
به نام خداوند بخشنده و مهربان ، امروز برای شما عزیزان وسروران گرامی پست آموزشی با عنوان “طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی) ” تهیه نمودیم ، توضیح کدهای کاربردی در این فرم را سعی نمودیم بطور کامل توضیح دهیم لذا در صورت وجود هرگونه سوالات پیرامون دستورات مورد استفاده میتواند آن را در قسمت نظرات پست ارسال نمایید تا در اسرع وقت نسبت به پاسخگویی آن اقدام گردد .
بدون معطلی و فوت وقت بریم سراغ آموزش طراحی و کدنویسی فرم ثبت نام ولاگین در نرم افزار اکسل توسط کدهای وی بی ای .
شروع طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی)
در قدم اول شما می بایست با ورود به محیط ویژوال بیسیک (کلیدمیانبر 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
فایل نهایی این آموزش را از قسمت زیر میتوانید دانلود و از دستورات آن الگوبرداری کنید :
در صورت وجود هرگونه سوال پیرامون کدهای مورد استفاده در این فایل و پست آموزشی طراحی و کدنویسی فرم ثبت نام و لاگین در نرم افزار اکسل (ماکرونویسی) ، میتوانید در قسمت نظرات سایت مطرح و یا از تالار گفتمان سایت استفاده نمایید .
سایر لینک های مفید و کاربردی مرتبط با ماکرونویسی در اکسل :
- آموزش الفبای وی بی ای در اکسل
- آموزش طراحی و کدنویسی نرم افزار دریافت و پرداخت در اکسل
- آموزش طراحی و کدنویسی نرم افزار صندوقداری در اکسل (فصل اول – فصل دوم)
- آموزش طراحی و کدنویسی نرم افزار دفترچه تلفن در اکسل (فصل اول – فصل دوم)
- آموزش رایگان ماکرونویسی در محیط اکسل (کاملا رایگان)
- حمایت از تولید محتوای آموزشی (کاملا اختیاری)
سلام
نام یوزر و پسورد در فایل لاگین چیست؟ تا وارد فایل و مشاهده کد نویسی شویم
تشکر
سلام
وقتی فرم اجرا میشود ، روی Cancel کلیک کنید تا فرم ثبت نام باز شود .
یک یوزر و پسورد برای لاگین ایجاد کنید و ورود کنید .
سلام جناب حسینی
ضمن تشکر از جنابعالی که تجربه جنذین ساله خودتون رو در اختیار افراد مبتدی میگذارید ممنون و متشکرم خواهش که داشتم از شما برای تهیه فرم در اکسل و Vba هر چند ساده تعدادی اموزشی تهیه فرمائید تا با مطالبی که میفرمائید بتونیم از فرمهای آموزشی استفاده کنیم برای شما هیچ مشکل نیست و زمان زیادی نخواهد برد امر به خودستایی نباشه من خودم کلید ساز هستم در حد حرفه ای برای من باز کردن قفل بسیار ساده است ولی برای دیگران خیلی مهم جلوه میکنه پس محبت کنید هرچند ساده رو برای عزیزان مشتاق بزارید . ممنونم
سلام سپاسگزارم از شماا
حقیقت ما چندین مجموعه پیرامون طراحی فرم ها ارائه کردیم.
مجموعه دفترچه تلفن شاید نام آن پیرامون طراحی و کدنویسی یک دفترچه تلفن ساده باشد منتهی بسیار کدنویسی مناسبی ارائه کردیم.
https://excellearn.ir/downloads/%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d9%86%d8%b1%d9%85-%d8%a7%d9%81%d8%b2%d8%a7%d8%b1-%d8%af%d9%81%d8%aa%d8%b1%da%86%d9%87-%d8%aa%d9%84%d9%81%d9%86-%d8%af%d8%b1-%d8%a7%da%a9%d8%b3%d9%84%d9%81%d8%b5%d9%84-2/
فصل سوم این مجموعه طراحی و کدنویسی فرم لاگین را دارد.
البته آموزش های متنوع دیگری پیرامون طراحی و پیاده سازی فرم ها ارائه کردیم ، از جمله طراحی و کدنویسی نرم افزار صندوقداری که نظیر آن در بین منابع زبان اصلی نیست.
سلام وقت بخیر و خوشی
در کد های بالا تعریف شده که آخرین کاربری که ثبت نام کرده اطلاعاتش تطبیق داده بشه اگر درست بود وارد بشه.اگر بخواهیم کاربران ثبت نامی نباشه و از اطلاعات و داده هایی که خودمون تعزیف میکنیم بشه وارد فرم شد کدش چیه؟یعنی نام کاربری و رمز و ما تعریف کنیم و کاربر بر اساس اونها وارد بشه.ممنون میشم راهنمایی نمایید
سلام و وقت بخیر
موردی وجود ندارد
کدهای فرم را بصورت زیر ویرایش کنید:
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 to Microsoft Excel”, vbInformation, “Wellcome”
Application.ActiveWindow.Application.Visible = True
Login.Hide
Worksheets(“Register”).Activate
End If
Next Rng