نمونه برنامه اکسل مدیریت داده‌های UserForm در VBA و چاپ بخش‌های دارای اطلاعات (Print Sections)


در دنیای برنامه‌نویسی اکسل، یکی از نیازهای رایج کاربران، مدیریت داده‌ها و نمایش آن‌ها در قالب فرم‌های کاربری (UserForm) است. این فرم‌ها به کاربران امکان می‌دهند تا داده‌ها را وارد، ویرایش و بررسی کنند، بدون نیاز به دستکاری مستقیم در سلول‌های صفحه‌کار. علاوه بر این، در بسیاری موارد، نیاز است که داده‌های وارد شده در این فرم‌ها به صورت منسجم و قابل چاپ، برای اهداف مختلفی چون گزارش‌گیری، آرشیو و یا انتقال به دیگر سیستم‌ها، آماده شوند. در این مقاله، به طور جامع و کامل، نمونه برنامه‌ای در اکسل با استفاده از VBA ارائه می‌شود که مدیریت داده‌های وارد شده در UserForm را انجام می‌دهد و امکاناتی برای چاپ بخش‌هایی از فرم که دارای اطلاعات هستند، فراهم می‌سازد.
  1. طراحی UserForm و کنترل‌های آن
    ابتدا باید یک UserForm ایجاد کرد. این فرم می‌تواند شامل کنترل‌هایی مانند TextBox، ComboBox، CheckBox، Label و CommandButton باشد. فرض کنیم، فرم ما شامل موارد زیر است:
    - یک TextBox برای وارد کردن نام کاربر

- یک TextBox برای وارد کردن سن

- یک ComboBox برای انتخاب جنسیت

- یک CheckBox برای تایید صحت اطلاعات

- دو CommandButton: یکی برای ثبت داده‌ها و دیگری برای چاپ بخش‌های دارای اطلاعات
در طراحی، باید ترتیب و چیدمان کنترل‌ها به گونه‌ای باشد که کاربر به راحتی و با سرعت اطلاعات مورد نیاز را وارد کند و عملیات مورد نیاز را انجام دهد.
  1. کد نویسی برای مدیریت داده‌ها
    در ادامه، باید در بخش کد VBA، رویدادهای مربوط به کنترل‌ها، به خصوص رویداد کلیک بر روی دکمه‌ها، تعریف شوند. برای نمونه، کد زیر نشان می‌دهد که چگونه داده‌های وارد شده در کنترل‌ها، در یک جدول در شیت اکسل ذخیره می‌شوند.
    vba  

Private Sub cmdSave_Click()

Dim lastRow As Long

lastRow = Sheets("Data").Cells(Rows.Count, 1).End(xlUp).Row + 1
' ذخیره داده‌ها در ردیف بعدی

Sheets("Data").Cells(lastRow, 1).Value = Me.txtName.Value

Sheets("Data").Cells(lastRow, 2).Value = Me.txtAge.Value

Sheets("Data").Cells(lastRow, 3).Value = Me.cmbGender.Value

Sheets("Data").Cells(lastRow, 4).Value = IIf(Me.chkConfirm.Value = True, "Yes", "No")
MsgBox "اطلاعات ثبت شد!", vbInformation

End Sub


در این کد، فرض بر این است که جدولی در sheet "Data" وجود دارد که داده‌ها در آن ذخیره می‌شوند. این روش، به صورت خطی و ساده، داده‌ها را وارد می‌کند و امکان مرور و مدیریت آسان را فراهم می‌سازد.
  1. نمایش و مدیریت داده‌ها در UserForm
    گاهی اوقات، نیاز است که داده‌های وارد شده در فرم، به صورت لیست یا جدول نمایش داده شوند تا کاربر بتواند آن‌ها را ببینید و در صورت نیاز ویرایش کند. برای این منظور، می‌توان از کنترل ListBox یا ComboBox استفاده کرد.
    کد زیر، نمونه‌ای است برای پر کردن یک ListBox با داده‌های موجود در شیت "Data":
    vba  

Private Sub UserForm_Initialize()

Dim ws As Worksheet

Dim lastRow As Long

Dim i As Long
Set ws = Sheets("Data")

lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

Me.lstData.Clear
For i = 2 To lastRow

Me.lstData.AddItem ws.Cells(i, 1).Value ' نام کاربر

Me.lstData.List(Me.lstData.ListCount ... ← ادامه مطلب در magicfile.ir