Hướng dẫn chi tiết các bước tạo form nhập liệu bằng VBA Excel

Đã bao giờ bạn muốn đơn giản hóa việc tạo danh sách trong Excel bằng một form nhập liệu tự động chưa? Nếu bạn chưa biết cách làm thì hãy để Gitiho hướng dẫn chi tiết các bước tạo form nhập liệu bằng VBA Excel nhé.

Công dụng của việc tạo form nhập liệu bằng VBA Excel

Ứng dụng VBA trong Excel đang ngày càng trở nên phổ biến vì những lợi ích tuyệt vời mà nó mang lại cho người dùng. Một trong những tính năng tiện lợi nhất chính là tạo form nhập liệu bằng VBA, cụ thể là Userform trong Excel. Vậy tính năng này giúp ích thế nào cho người dùng? Dưới đây, chúng mình đã liệu kê cho bạn một số ưu điểm của tính năng này.

  1. Giảm thời gian nhập dữ liệu bằng tay.
  2. Hạn chế lỗi sai trong quá trình nhập dữ liệu.

  3. Chuyên nghiệp hóa danh sách, bảng tính Excel.

  4. Chuẩn hóa quá trình nhập dữ liệu với file được dùng chung bởi nhóm.

  5. Có khả năng tích hợp Data Validation ngay trên form nhập liệu.

  6. Form nhập liệu nâng cao dễ dàng tương tác với bảng tính và dữ liệu trên bảng tính.

Xem thêm: Tìm hiểu về cách tự tạo hàm Excel trong VBA

Các bước tạo form nhập liệu bằng VBA Excel

Chúng ta có một danh sách bao gồm 3 cột: Họ và tên, Email, Số điện thoại như hình. Để đơn giản hóa quá trình nhập liệu, chúng ta cần tạo form nhập liệu bằng VBA.

Hãy cùng tìm hiểu chi tiết cách tạo Userform trong Excel nào.

Các bước tạo form nhập liệu bằng VBA: Tạo UserForm trong Excel

Tạo đề mục cho UserForm trong Excel

Đầu tiên, chúng ta sẽ mở cửa sổ VBA Excel để tiến hành tạo form nhập liệu bằng VBA. Bạn có thể thực hiện bước này bằng cách vào tab Developer > nhóm Code > Visual Basic.

Chúng ta sẽ tạo Module mới bằng cách nhấn chuột phải tại Sheet1 > Insert > Module. Module này đóng vai trò là cửa sổ viết code của chúng ta.

Tiếp theo, chúng ta tạo một form nhập liệu bằng VBA bằng cách nhấn chuột phải tại Sheet1 > Insert > UserForm.

Như vậy, chúng ta đã có đầy đủ 2 bảng cần dùng. Chúng ta sẽ bắt đầu thao tác trên Userform trong Excel. Tại hộp thoại Toolbox xuất hiện cùng UserForm, chúng ta sẽ tạo các đề mục bằng cách nhấn vào biểu tượng đề mục (label) và kéo vẽ một đề mục trong form dữ liệu. Tên mặc định hiển thị của đề mục là Label1, chúng ta hãy đổi thành Họ và tên.

Font chữ và kích cỡ chữ mặc định có vẻ quá bé đúng không nào? Để chỉnh sửa hiển thị đề mục này, chúng ta hãy để ý sang cửa sổ Properties – Sheet 1 bên trái màn hình. Kéo xuống một chút, nhấn vào dấu … tại mục Font để sửa đổi font, hiệu ứng chữ và kích cỡ chữ theo ý muốn của bạn.

Vậy là chúng ta đã hoàn thành đề mục Họ và tên cho Userform trong Excel. Để tạo tất cả các đề mục, chúng ta không cần lặp lại các bước trên mà đơn giản chỉ cần Copy Paste đề mục Họ và tên rồi tiến hành đổi tên đề mục lần lượt thành Email và Số điện thoại.

Xem thêm: Hướng dẫn những thủ thuật hay với việc Copy trong Excel

Có thể các bạn sẽ muốn chiều ngang các ô đề mục hiển thị bằng nhau. Trong trường hợp này, các bạn hãy chọn tất cả đề mục, nhấn chuột phải > Make Same Size > Width. Các đề mục tại UserForm trong Excel sẽ được co dãn về cùng chiều ngang.

Tạo ô nhập liệu cho UserForm trong Excel

Tương tự với các bước tạo đề mục, ở phần này, chúng ta tìm hiểu cách tạo ô nhập liệu cho Userform trong Excel. Hãy nhấn vào biểu tượng TextBox trong hộp thoại Toolbox để tạo form nhập liệu bằng VBA.

Xem thêm: Hướng dẫn tự động định dạng số khi nhập vào textbox trong userform VBA Excel

Sau đó, hãy thực hiện Copy Paste để tạo thêm 2 ô nhập liệu cho 2 đề mục còn lại. Trong trường hợp các ô có chiều rộng không đều, chúng ta có thể chọn tất cả các ô, nhấn chuột phải > Make Same Size > Width như ở phần trên để đưa các ô về cùng một chiều rộng.

Tạo nút xác nhận cho UserForm trong Excel

Bước tiếp theo để tạo form nhập liệu bằng VBA là tạo nút xác nhận sau khi chúng ta điền thông tin vào ô nhập liệu. Tại hộp thoại Toolbox, hãy nhấn vào biểu tượng CommandButton và vẽ nút xác nhận tại cửa sổ Userform trong Excel. Một nút bấm được tạo, thay đổi tên nút thành Nhập dữ liệu.

Xem thêm: Hướng dẫn cách tạo userform đẹp trong excel vba với hiệu ứng button thay đổi khi ấn

Để thao tác thuận lợi với code VBA, chúng ta hãy đổi tên của các vật thể tại Userform trong Excel tương ứng với loại vật thể. Ngay dòng đầu của phần Properties – Sheet 1 là nơi chúng ta đổi tên vật thể để đơn giản hóa quá trình tạo form nhập liệu bằng VBA.

  • Ô nhập liệu: Đổi tên ô nhập liệu lần lượt thành txtName, txtEmail và txtMobile.

  • Nút nhập dữ liệu: Đổi tên nút bấm thành btnInsert.

Vậy là giao diện Userform trong Excel đã sẵn sàng để sử dụng. Tuy nhiên, chúng ta mới chỉ hoàn thành phần hiển thị của form nhập liệu thôi. Cùng tìm hiểu tiếp cách thiết lập phần nội dung của form nào.

Xem thêm: Hướng dẫn cách chèn ảnh vào Userform VBA đơn giản nhất

Các bước tạo form nhập liệu bằng VBA: Tạo code VBA

Không có code VBA, chúng ta sẽ không thể khiến Userform trong Excel hoạt động trơn tru. Chính vì vậy, đây là bước vô cùng quan trọng để tạo form nhập liệu bằng VBA. Hãy cùng tìm hiểu các thao tác Excel trong phần này nhé.

Code VBA để hiển thị Userform trong Excel

Hãy bắt đầu bằng code VBA giúp Excel hiển thị Userform sau khi ấn vào nút mở. Tại trang Module tạo từ bước đầu, chúng ta sẽ nhập vào các dòng code sau:

Sub open_form()
    UserForm1.Show
End Sub

Code đầu tiên rất đơn giản phải không nào? Giờ thì hãy thử xem code VBA này có hoạt động không nhé. Hãy tạo một hình vuông bên ngoài trang tính Excel ngay bên cạnh danh sách, điền vào đó câu lệnh “Mở form nhập liệu”. Sau đó nhấn chuột phải > Assign Macro để ghép code VBA vào trong hình.

Hộp thoại Assign Macro hiện lên. Bấm chọn open_form và nhấn OK.

Lệnh mở Userform trong Excel đã được thêm vào ô hình. Hãy ấn vào ô để xem điều kì diệu nhé.

Xem thêm: Hướng dẫn từng bước cách viết Macro trong VBA Excel

Code VBA nhập dữ liệu từ form nhập liệu vào bảng tính Excel

Chúng ta tiếp tục với code VBA chuyển dữ liệu từ form nhập liệu vào các ô trong danh sách. Lần này, hãy mở cửa sổ Userform trong Excel và nhấn đúp vào nút Nhập dữ liệu.

Cửa sổ code của nút Nhập dữ liệu hiện ra như trong hình.

Để tạo form nhập liệu bằng VBA có thể chuyển dữ liệu được nhập sang vị trí tương ứng trong danh sách, chúng ta cần nhập code sau đây:

Private Sub btnInsert_Click()
    Dim dong_cuoi As Long
    dong_cuoi = Sheet1.Range("A10000").End(xlUp).Row + 1
    With Sheet1
        .Range("A" & dong_cuoi) = txtName.Text
        .Range("B" & dong_cuoi) = txtEmail.Text
        .Range("C" & dong_cuoi) = txtMobile.Text
    End With
End Sub

Đóng cửa sổ VBA và cùng kiểm tra kết quả hoạt động của code VBA nào. Hãy nhập đầy đủ dữ liệu vào các ô và nhấn nút Nhập dữ liệu.

Xem thêm: Một số Code VBA để tìm dòng cuối cùng có dữ liệu trong Excel

Code VBA để nhập lại dữ liệu mới trong form nhập liệu

Sau khi tạo form nhập liệu bằng VBA, có thể bạn sẽ nhận ra form chưa hoàn chỉnh vì chúng ta cần xóa tay các giá trị trong ô nhập liệu để điền được giá trị mới. Để khắc phục điều này, chúng ta hãy tạo thêm một nút Nhập lại để Excel tự động xóa dữ liệu cũ tại Userform trong Excel.

Nhấn đúp vào nút Nhập lại để viết code VBA cho thao tác xóa dữ liệu. Hãy nhập vào cửa sổ code sau đây:

Private Sub btnReset_Click()
    txtName.Text = ""
    txtEmail.Text = ""
    txtMobile.Text = ""
End Sub

Vậy là Userform trong Excel đã sẵn sàng để thao tác. Cùng kiểm tra kết quả tạo form nhập liệu bằng VBA với chúng mình nào.

Xem thêm: Hướng dẫn đóng hoàn toàn Userform trong VBA Excel

Tổng kết

Các bạn vừa cùng Gitiho tìm hiểu các bước chi tiết để tạo form nhập liệu bằng VBA. Với tính năng Userform trong Excel, việc nhập liệu của chúng ta sẽ trở nên đơn giản hơn rất nhiều. Để học cách sử dụng code VBA Excel từ A-Z, các bạn hãy đọc thêm các bài viết của chúng mình trên blog Gitiho và nhanh tay đăng kí khóa học Tuyệt đỉnh VBA nhé.

Chúc các bạn áp dụng thủ thuật thành công!

Tham khảo các bài viết khác về chủ đề VBA Excel tại đây:

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA

Hướng dẫn hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel

Unicode tiếng việt khi viết trong VBA

Hướng dẫn cách viết hàm VBA trong Excel

Cách sử dụng hàm MsgBox() để tạo hộp thông báo với VBA

Cùng tham gia cộng đồng hỏi đáp về chủ đề VBA