Thêm hàng loạt Control trong USERFORM

Ờ Phong
27/06/21
385
1

Thêm hàng loạt Control trong USERFORM, là khi tạo một dự án trong Excel VBA kết hợp việc sử dụng UserForm. Đôi khi bạn có thể muốn tạo các Điều khiển thực tế thông qua sự lựa chọn của người dùng.Trong bài này mình sẽ hướng dẫn cách sử dụng UserForm trong VBA, đây là một tính năng rất hay của lập trình Excel, nó giúp ta tạo ra những form nhập dữ liệu một cách nhanh chóng.

Thêm hàng loạt Control trong USERFORM

I. USERFORM LÀ GÌ

Trong một dự án VBA, người dùng có thể chọn nhập dữ liệu từ chính ứng dụng nền (Excel, Autocad…). Tuy nhiên trong nhiều trường hợp giao diện nhập – xuất dữ liệu trên ứng dụng nền chưa đáp ứng được yêu cầu hoặc việc nhập liệu không mang lại sự tiện lợi cho người dùng.

Khi đó cần tạo ra giao diện “nhập – xuất” riêng thông qua việc sử dụng UserForm trong dự án VBA. Tổng quát lại, để nhập – xuất dữ liệu trong dự án VBA ta có thể sử dụng một trong các cách, Sử dụng chính ứng dụng nền, Sử dụng UserForm

UserForm thực chất là một (nhiều) cửa số, do người dùng lập ra nhằm giải quyết các yêu cầu khác nhau của dự án. Vì thế trong UserForm luôn có những thành phần phục vụ cho nhu cầu tương tác giữa người dùng và chương trình: Nhập, xuất dữ liệu, lựa chọn cách xử lý dữ liệu (điều hướng xử lý dữ liệu), ra lệnh xử lý… Những thành phần này được gọi là điều khiển (Controls).

II. CODE Thêm hàng loạt Control trong USERFORM

BƯỚC 1 : Ví dụ ta có 1 danh sách sản phẩm như hình dưới :

Thêm hàng loạt Control trong USERFORM
Thêm hàng loạt Control trong USERFORM

Bạn copy đoạn code này vào userform

Sub Cot1()
Dim LR, i As Integer
LR = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LR
Set TenSP1 = UserForm1.Controls.Add("Forms.Textbox.1")
With TenSP1
    .Name = "Label" & i
    .Left = 5
    .Height = 30
    .Top = k + 5
    .Width = 200
    .Value = Sheet1.Cells(i, 1)
End With
Private Sub UserForm_Activate()
Call Cot1
End Sub

Lr , i  : Mình khai báo biên Integer vì nó là 1 con số

Lr : ở đây mình đang tìm kiếm dòng cuối cùng của dữ liệu ở Sheet1

For i : mình cho vòng lặp chạy từ 2 đến dòng cuối chung

UserForm1.Controls.Add : ở Userform mình add các Controls có dạng là Textbox , ( bạn có thể thay đổi Label , hoặc nhìu thứ khác )

With :  để mình không cần lập lại đối tượng đó nhìu lần

Name : tên control tạo là gì ( không đc giống nhau )

Top , Left , Hight , With : các chiều cao rông, dài ngắn , nằm trên hoặc dưới , tùy vào người dùng tạo ra

Value : giá trị trả về nó là gi  ở sheet1

Sub UserForm_Activate() : khi userform bật lên là tạo các control ở code trên

Thêm hàng loạt Control trong USERFORM
Thêm hàng loạt Control trong USERFORM

Bạn có thể thêm các Properties tùy vào sở thích của bạn .

Nếu bạn muốn thêm các Textbox, chứa thông tin Tên SP trong hình dưới đây bạn phải làm như thế nào, bạn có thể tham khảo code dưới đây:

Thêm hàng loạt Control trong USERFORM
Thêm hàng loạt Control trong USERFORM
Sub Cot1()
Dim LR, i As Integer
LR = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LR
Set TenSP1 = UserForm1.Controls.Add("Forms.Textbox.1")
Set TenSP2 = UserForm1.Controls.Add("Forms.Textbox.1")
Set TenSP3 = UserForm1.Controls.Add("Forms.Textbox.1")
Set TenSP4 = UserForm1.Controls.Add("Forms.Textbox.1")
With TenSP1
    .Name = "Label" & i
    .Left = 5
    .Height = 30
    .Top = k + 5
    .Width = 200
    .Value = Sheet1.Cells(i, 1)
End With
With TenSP2
    .Name = "Label" & i
    .Left = 205
    .Height = 30
    .Top = k + 5
    .Width = 200
    .Value = Sheet1.Cells(i, 2)
End With
With TenSP3
    .Name = "Label" & i
    .Left = 405
    .Height = 30
    .Top = k + 5
    .Width = 50
    .Value = Sheet1.Cells(i, 3)
End With
With TenSP4
    .Name = "Label" & i
    .Left = 465
    .Height = 30
    .Top = k + 5
    .Width = 50
    .Value = Sheet1.Cells(i, 4)
End With
 k = k + 35
Next i
End Sub

Private Sub UserForm_Activate()
Call Cot1
End Sub

III. TẢI DEMO

CLICK VÀO ĐÂY ĐỂ DOWN DEMO

Kết : Như vậy, chúng tôi đã giới thiệu và hướng dẫn cho bạn về cách Thêm hàng loạt Control trong USERFORM, bài viết này có thể giúp bạn nâng cao kĩ năng tin học của mình về Desgin userform 1 cách chuyện nghiệp.

Các bài viết liên quan bên dưới.

Cuộn chuột trong Listbox Combobox WINDOWN API

Phần mềm xuất nhập tồn bằng Excel miễn phí 2021

Cho phép nhập liệu số trong TEXTBOX

One thought on “Thêm hàng loạt Control trong USERFORM

  1. Pingback: Chọn nhìu Control trả về dữ liệu tương ứng trong VBA 2021

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *