
لینک کوتاه : https://magicfile.ir/?p=4690
دانلود سورس ثبت سفارش در اکسل با استفاده از فرم UserForm (VBA)
در این پست از سایت، یک سورس کاملاً کاربردی و حرفهای برای ثبت سفارشات در نرمافزار اکسل (Excel) را آماده کردهایم که با استفاده از قابلیتهای VBA و فرم گرافیکی (UserForm) طراحی شده است.
این فایل به شما اجازه میدهد تا بدون نیاز به دانش برنامهنویسی پیشرفته، یک سیستم ساده اما قدرتمند برای مدیریت سفارشات مشتریان را در اکسل راهاندازی کنید.
نمونه تصاویر در زمان اجرا
📦 امکانات و ویژگیهای این فایل:
✅ رابط گرافیکی (UserForm) حرفهای:
طراحی شده با فرم تعاملی برای ورود، ویرایش، جستجو و حذف اطلاعات سفارش تنها با چند کلیک ساده.
✅ اتصال مستقیم به شیت اطلاعات محصولات:
فرم به صورت خودکار اطلاعات را از شیت "محصولات" بارگیری کرده و نمایش میدهد.
✅ قابلیت افزودن محصول جدید:
کاربر میتواند از طریق فرم، محصول جدید را به لیست سفارشات اضافه کند. اطلاعات بهطور خودکار در ردیف بعدی وارد میشود.
✅ قابلیت جستجوی سریع:
کافی است کد محصول را وارد کنید تا اطلاعات مربوط به آن بهصورت خودکار در فرم بارگذاری شود.
✅ ویرایش و بروزرسانی اطلاعات:
با انتخاب یک محصول از لیست و اعمال تغییرات، میتوانید اطلاعات آن را تنها با یک کلیک بهروزرسانی کنید.
✅ حذف محصول با تأیید کاربر:
در صورت نیاز میتوان محصولی را حذف کرد، همراه با نمایش پیام تأیید برای جلوگیری از حذف ناخواسته.
✅ کاملاً فارسیسازی شده و راستچین:
مناسب برای کاربران ایرانی با محیط کاربری کاملاً فارسی.
✅ بدون نیاز به نصب نرمافزار جانبی:
فقط کافیست فایل اکسل را باز کرده و از فرم استفاده کنید.
🧩 اجزای اصلی پروژه:
-
فرم UserForm شامل کنترلهای زیر:
-
لیست نمایش محصولات (ListBox)
-
فیلدهای ورود کد، نام، قیمت و موجودی (TextBox)
-
دکمههای: افزودن، ویرایش، حذف، جستجو، بستن
-
-
ماژولهای VBA شامل ۳ بخش اصلی:
-
LoadProducts
: بارگیری اطلاعات محصولات از شیت به فرم -
btnAdd_Click
,btnUpdate_Click
,btnDelete_Click
: عملیات CRUD -
btnSearch_Click
: جستجوی محصول از طریق InputBox -
lstProducts_Change
: همگامسازی انتخاب لیست با فیلدهای متنی فرم
-
-
شیت اطلاعات با نام "محصولات"
-
شامل ستونهای: کد محصول، نام محصول، قیمت، موجودی
-
🎯 مناسب برای چه کسانی است؟
-
کسبوکارهای کوچک برای مدیریت سفارشات و محصولات
-
فروشگاههای آنلاین یا اینستاگرامی برای کنترل موجودی
-
دانشآموزان و دانشجویان برای یادگیری پروژههای VBA در Excel
-
کارمندان بخش فروش یا انبار برای پیگیری ثبت سفارشات
🎁 محتوای فایل دانلودی:
-
فایل اکسل با فرمت
.xlsm
(دارای کد ماکرو فعال) -
کدهای کامل VBA با کامنتگذاری فارسی
-
بدون محدودیت استفاده یا قفل ماکرو
✅ کد فرم شماره ۱: بارگذاری لیست محصولات در ListBox
Private Sub UserForm_Initialize() LoadProducts End Sub Sub LoadProducts() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Set ws = ThisWorkbook.Sheets("محصولات") lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row lstProducts.Clear For i = 2 To lastRow lstProducts.AddItem ws.Cells(i, 1).Value lstProducts.List(lstProducts.ListCount - 1, 1) = ws.Cells(i, 2).Value lstProducts.List(lstProducts.ListCount - 1, 2) = ws.Cells(i, 3).Value lstProducts.List(lstProducts.ListCount - 1, 3) = ws.Cells(i, 4).Value Next i End Sub
🧠 توضیح کامل:
بخش کد | توضیح |
---|---|
UserForm_Initialize |
این رویداد هنگام باز شدن فرم اجرا میشود و تابع LoadProducts را فراخوانی میکند. |
Set ws = ThisWorkbook.Sheets("محصولات") |
اشاره به شیت با نام "محصولات" در فایل جاری |
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row |
یافتن آخرین ردیف پر در ستون A برای مشخص کردن محدوده دادهها |
lstProducts.Clear |
پاک کردن آیتمهای موجود در لیست باکس قبل از بارگذاری جدید |
حلقه For i = 2 To lastRow |
از ردیف دوم (بعد از عنوان ستونها) تا آخرین ردیف پر اجرا میشود |
lstProducts.AddItem و lstProducts.List(..., n) |
افزودن اطلاعات مربوط به هر محصول در چهار ستون ListBox به ترتیب: کد، نام، قیمت، موجودی |
✅ کد فرم شماره ۲: انتخاب یک ردیف از ListBox و نمایش جزئیات آن در TextBoxها
Private Sub lstProducts_Change() Dim selectedRow As Long selectedRow = lstProducts.ListIndex If selectedRow >= 0 Then txtCode.Text = lstProducts.List(selectedRow, 0) txtName.Text = lstProducts.List(selectedRow, 1) txtPrice.Text = lstProducts.List(selectedRow, 2) txtStock.Text = lstProducts.List(selectedRow, 3) End If End Sub
🧠 توضیح کامل:
بخش کد | توضیح |
---|---|
lstProducts_Change() |
وقتی کاربر یک ردیف از ListBox را انتخاب کند، این رویداد اجرا میشود. |
selectedRow = lstProducts.ListIndex |
شماره ردیف انتخابشده در ListBox |
If selectedRow >= 0 Then |
بررسی میکند که آیا واقعاً ردیفی انتخاب شده است (برای جلوگیری از خطا) |
txtCode.Text = ... |
اطلاعات هر ستون از ردیف انتخابشده را در TextBox مربوطه نمایش میدهد. |
📌 این کد باعث میشود اطلاعات محصول انتخابی، برای ویرایش یا بررسی آماده شود.
✅ کد فرم شماره ۳: افزودن یک محصول جدید به لیست
Private Sub btnAdd_Click() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("محصولات") Dim newRow As Long newRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 ws.Cells(newRow, 1).Value = txtCode.Text ws.Cells(newRow, 2).Value = txtName.Text ws.Cells(newRow, 3).Value = txtPrice.Text ws.Cells(newRow, 4).Value = txtStock.Text MsgBox "محصول با موفقیت اضافه شد.", vbInformation LoadProducts End Sub
🧠 توضیح کامل:
بخش کد | توضیح |
---|---|
btnAdd_Click() |
این رویداد زمانی اجرا میشود که کاربر روی دکمه "افزودن محصول" کلیک کند. |
Set ws = ... |
مشخص کردن شیت "محصولات" برای ورود اطلاعات |
newRow = ... |
یافتن اولین ردیف خالی پس از دادهها برای وارد کردن اطلاعات جدید |
ws.Cells(newRow, 1 to 4) |
وارد کردن کد، نام، قیمت و موجودی محصول جدید در ردیف جدید |
MsgBox |
نمایش پیام تأیید برای اطلاعرسانی به کاربر |
LoadProducts |
بارگذاری مجدد لیست محصولات در ListBox برای نمایش تغییرات |
📌 اگر بعد از افزودن محصول جدید، فرم را بهروزرسانی نکنید، اطلاعات جدید دیده نمیشود. بنابراین فراخوانی مجدد LoadProducts
بسیار مهم است.
🧾 جمعبندی:
کد | عملکرد | اهمیت |
---|---|---|
کد فرم ۱ | بارگذاری لیست محصولات | ستونهای محصولات را در فرم نمایش میدهد |
کد فرم ۲ | نمایش جزئیات محصول انتخابی | امکان مشاهده و ویرایش دقیق اطلاعات |
کد فرم ۳ | افزودن محصول جدید | ثبت دادههای جدید در شیت و فرم |
این سه کد با هم، پایههای اصلی یک سیستم مدیریت محصولات در اکسل را میسازند. شما میتوانید به راحتی قابلیتهایی مثل حذف، ویرایش، جستجو و گزارشگیری را نیز به آن اضافه کنید.
برای شما کاربران عزیز پیشنهاد دانلود داده می شود.