آموزش رایگان ساخت Userform در اکسل

آموزش رایگان ساخت Userform در اکسل(3)

در قسمت های اول و دوم طراحی و کدنویسی فرم در اکسل ما یاد گرفتیم که چگونه یک یوزرفرم(Userform) طراحی و اطلاعات آن را توسط کدهای وی بی ای(VBA) به سلول های صفحه گسترده جهت ثبت و ذخیره ارسال کنیم.

در قسمت سوم آموزش رایگان ساخت فرم در اکسل شما با نحوه استفاده و کاربرد لیست باکس(Listbox) در یوزرفرم ها آشنا خواهید شد لذا خواهشمندیم تا پایان این پست آموزشی مارا همراهی کنید و نظرات خوب خود را برای ما در قسمت نظرات ارسال کنید.

کاربرد لیست باکس (Listbox) در یوزرفرم چیست؟

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

کاربرد لیست باکس (Listbox) در یوزرفرم چیست؟
کاربرد لیست باکس (Listbox) در یوزرفرم چیست؟

لیست باکس در یوزرفرم های وی بی ای نقش دیتابیس(DataBase) در نرم افزارها را ایفا می کند که حال می تواند نمایی از داده های ثبت شده و یا قدرت انتخاب به منظور اعمال تغییرات داده های ثبت شده را به کاربران دهد.

به منظور اضافه کردن محتوا به Listbox از دستورات زیر استفاده می کنیم:

With ListBox1
.ColumnHeads = True
.ColumnCount = 4
.RowSource = "Sheet1!A2:D15"
End With

در دستورات فوق، ما ابتدا با خطاب قرار دادن Listbox شماره 1 ابتدا تعریف نمودیم که دارای سرتیتر می باشد و در ادامه تعداد ستون های این لیست باکس را برابر با 4 تعیین نمودیم و در پایان نیز توسط RowSource اقدام به تعریف محدوده داده های این لیست باکس نمودیم.

اضافه نمودن لیست باکس(Listbox) به یوزرفرم

با توجه به مطالبی که در قسمت فوق ارائه شد، نیاز داریم تا کمی فرم خودمان را برای درج لیست باکس تغییر دهیم تا فرم شکیل و زیباتری داشته باشیم. بدین منظور یوزرفرم خود را مطابق با تصویر زیر تغییر می دهیم:

اضافه نمودن لیست باکس(Listbox) به یوزرفرم
اضافه نمودن لیست باکس(Listbox) به یوزرفرم

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

اضافه نمودن لیست باکس(Listbox) به یوزرفرم
اضافه نمودن لیست باکس(Listbox) به یوزرفرم

اضافه نمودن لیست باکس(Listbox) تا به اینجا به اتمام رسید حال در ادامه نحوه کدنویسی آن را باهم بررسی خواهیم نمود.

کدنویسی لیست باکس(Listbox) در یوزرفرم

به منظور مقداردهی اولیه لیست باکس نیاز داریم تا در بخش UserForm_Initialize کدنویسی مربوطه را همانند تصویر زیر انجام دهیم:

کدنویسی لیست باکس(Listbox) در یوزرفرم
کدنویسی لیست باکس(Listbox) در یوزرفرم

در ادامه کدهای وی بی ای این بخش را بصورت مجزا برای شما قرار دادیم:

With ListBox1
.ColumnHeads = True
.ColumnCount = 4
.RowSource = "Sheet1!A2:D10"
End With

از آنجاییکه جدول داده های ما دارای سرتیتر است لذا مقدار ColumnHeads را برابر با True و تعداد ستون های آن را برابر با عدد 4 قرار دادیم(A:D) و در پایان توسط Rowsource اقدام به مقدار دهی این لیست باکس نمودیم.

خروجی شما با اجرای فرم بصورت زیر خواهد بود:

کدنویسی لیست باکس(Listbox) در یوزرفرم
کدنویسی لیست باکس(Listbox) در یوزرفرم

با درج و ثبت اطلاعات متوجه خواهید شد که فرم فوق دارای یک ضعف بزرگ و آن هم عدم بروزرسانی لیست باکس پس از درج داده جدید است. به منظور برطرف نمودن این ضعف می بایست دو خط کد به انتهای کدهای دکمه Submit اضافه کنیم تا پس از ثبت هر رکورد جدید، فرم را به منظور بروزرسانی لیست باکس Unload نماید. به تصویر زیر دقت کنید:

کدنویسی لیست باکس(Listbox) در یوزرفرم
کدنویسی لیست باکس(Listbox) در یوزرفرم

در ادامه کدهای این باتن را به صورت مجزا مشاهده خواهید نمود:

Private Sub CommandButton1_Click()
Dim LastRow As Long
LastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Range("A" & LastRow).Value = TextBox1.Text
Range("B" & LastRow).Value = TextBox2.Text
Range("C" & LastRow).Value = TextBox3.Text
Range("D" & LastRow).Value = ComboBox1.Text
TextBox1.Text = Empty
TextBox2.Text = Empty
TextBox3.Text = Empty
ComboBox1.Text = Empty

Unload Me
UserForm1.Show

End Sub

در دستورات فوق، ما توسط Unload Me یوزرفرم فعال را Unload و توسط UserForm1.Show آن را مجدد نمایش دادیم که این عمل برای بروزرسانی لیست باکس پس از درج رکورد جدید الزامی است. حال اگر اقدام به درج رکورد جدید و ثبت آن کنید مشاهده خواهید نمود که داده های لیست باکس(Listbox) نیز بصورت اتوماتیک بروزرسانی خواهد شد.

در پایان امیدواریم قسمت سوم آموزش رایگان ساخت Userform در اکسل نیز مورد رضایت شما سروران گرامی قرار گرفته باشد. همانطور که در ابتدای این پست آموزشی نیز گفته شد مارا با نظرات خوب خود راهنمایی کنید تا به بهترین شکل ممکن بتوانیم در حوزه آموزش کشور عزیزمان فعالیت کنیم.

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

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

امتیاز شما به مطلب

دوست داشتم: 267
دوست نداشتم: 222
میانگین امتیازات: 1.2

20 دیدگاه در “آموزش رایگان ساخت Userform در اکسل(3)

سلام و خسته نباشید

ببخشید میتونم ازتون خواهش کنم طرز درست کردن کامل فرم ورود اطلاعات بزارید که بشه هم سرچ کرد درونش براساس کد ملی یا شماره همراه یا نام ممنون میشم ازتون.

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

سلام آقا وحید عزیز
اگر علاقه مند به یادگیری طراحی یوزرفرم ها دارید پیشنهاد میکنم ابتدا دستورات وی بی ای را تمرین کنید سپس رو به سمت فرم ها بیارید.
یک مجموعه در سایت اکسل لرن است که با عنوان طراحی و کدنویسی دفترچه تلفن در اکسل ، مجموعه مناسبی است که طی 3 فصل ارائه شده .
کد تخفیف هم برای خرید Aparat استفاده کنید.
چشم سعی میکنم این بخش هم گسترش بدم منتهی فقط بصورت متنی است زیرا قبلا ویدیوهای مرتبط تولید شده است.

با سلام وعرض ارادت
با تشکر از اموزشهای خوبتان
میخواستم ببینم چگونه میتوانم در فرم delete کرد ایا کد ان را میتوانید اموزش دهید
واینکه چگونه میتوان هم فرم و دیتابیس را در دوشیت متفاوت برنامه نویسی کرد بطوریکه اطلاعات از فرم به دیتابیس در دوشیت مجزا انتقال یابد
در صورت امکان اموزش میدهید ممنون از لطف شما

سلام ارادت
کدنویسی این بخش امکان پذیر است ، بنده سعی میکنم در اسرع وقت آموزش آن را تهیه کنم حتما ولی قول بزودی را نمیتونم بدم متاسفانه چون درگیر کتاب راهنمای کامل اکسل هستم.

سلام،آقای حسنی این آموزش ساخت فرم خزانه داری ادامه قسمت های ۳ به بعد را در آپارات نذاشتین ادامه آموزش کجا ببینیم

سلام ارادت
آقا موسی متاسفانه این مجموعه منتشر نشد
شما می توانید پکیج طراحی فرم را تهیه کنید ، این پکیج هم طی 3 پروژه به شما طراحی فرم را خواهد آموخت.

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

سلام بله
فرم ها یک بخش دارند در قسمت Properties به نام Show modal اگر اشتباه نکنم
آن را Yes بزارید تا بشود روی اکسل کار کرد

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

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

سلام من يك فرم ورود اطلاعات توسط يوزر فرم ايجاد كردم كه اطلاعات رو در اكسل درج ميكند ولي در يوزر فرم قابليت ويرايش و جستجو اطلاعات.ندارم لطفا راهنمايي بفرماييد چطور اينكار رو انجام بدم ؟

سلام خوبین؟
خواهشمندم سوالات اکسل را در گروه ما مطرح کنید. تا بهتر بتوانیم شمارو راهنمایی کنیم.
دریافت لینک گروه از ربات زیر:
@Masoudhosseini_bot
در قسمت کامنت ها فضای کافی و امکانات برای راهنمایی شما نیست متاسفانه

با سلام و عرض ارادت سوالی داشتم اگر ممکنه راهنمایی بفرمایید
من یک فرم ورود اطلاعات دارم جایی از فرم هم ی تکس باکس با یک باتن جهت رمز عبور ، حالا همین رمز عبور را فراموش کردم چجوری میشه رمز عبور رو بازیابی کرد در ضمن برای بسته شدن فرم هم کد نویسی کردم ممنون

ببخشید راهنمایی تون رو به جیمیل ارسال کنید سپاس

سلام خوبین؟
خواهشمندم سوالات اکسل را در گروه ما مطرح کنید. تا بهتر بتوانیم شمارو راهنمایی کنیم.
دریافت لینک گروه از ربات زیر:
@Masoudhosseini_bot
در قسمت کامنت ها فضای کافی و امکانات برای راهنمایی شما نیست متاسفانه

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

سلام میخواستم فیلتر کردن داده ها در لیست باکس رو هم اضافه کنید لطفا مثلا وقتی در تکس باکس نام تایپی انجام میشه لیست باکس فیلتر بشه

سلام و وقت بخیر. با توجه به محدودیتی در پاسخگویی در قسمت نظرات وبسایت وجود دارد میتوانید از طریق ربات زیر عضو گروه تلگرامی ما شوید تا در حدتوان در خدمت شما دوست عزیزمان باشیم.
ربات تلگرامی Masoudhosseini_Bot

در خدمتتون هستیم

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب