Hướng dẫn cách thêm mới nội dung vào bảng danh sách trong Excel bằng VBA

Đây là Seri bài viết hướng dẫn việc ứng dụng VBA trong quản lý nội dung trong bảng danh sách (danh sách hàng hóa, danh sách nhân viên…), gồm 5 phần:

Sau đây chúng ta cùng tìm hiểu nội dung của phần 2 qua bài tập sau:

Cho bảng dữ liệu về Danh sách nhân viên như hình bên dưới:

Yêu cầu

  • Tạo nút lệnh Lưu để lưu nội dung của các ô B3, B5, D3, D5 vào các cột tương ứng trong bảng danh sách
  • Kết hợp việc khóa sheet để không cho phép tự ý thay đổi nội dung trong bảng

Cách làm

Đây là dạng bài tập cơ bản về việc lưu dữ liệu từ Form nhập liệu vào vị trí xác định trong Sheet.

Ở đây vùng A3:D5 chính là Form nhập liệu. Form này gắn trực tiếp trên Sheet chứ không phải UserForm trong VBA.

1. Phân tích yêu cầu bài toán

  • Cho phép nhập dữ liệu vào các ô B3, B5, D3, D5 khi sheet đang khóa
  • Trước khi lưu cần mở khóa Sheet để có thể lưu nội dung vào bảng được
  • Lưu dữ liệu tương ứng theo các nội dung: Từ ô B3 lưu vào cột Mã nhân viên, ô B5 lưu vào cột Họ tên… vị trí lưu sẽ là dòng trống tiếp theo trong bảng danh sách bên dưới.
  • Sau khi lưu xong nội dung thì khóa sheet lại để không cho phép tự ý thay đổi nội dung trong bảng.

2. Tạo lệnh Lưu trong cửa sổ VBA

  • Mở cửa sổ VBA, trong Module1 tạo 1 Sub có tên là Lenh_Luu
  • Ghi chú trình tự nội dung sẽ thực hiện như sau:

Chúng ta có thể thấy một số nội dung tương tự đã tìm hiểu ở bài trước. Trong bài này chúng ta sẽ tìm hiểu thêm những nội dung mới:

  • Tìm dòng trống tiếp theo trong bảng danh sách => Chính là tìm vị trí dòng cuối cùng có chứa dữ liệu
  • Lưu nội dung vào các cột tương ứng theo từng nội dung
  • Làm mới nội dung => Thực hiện lệnh Tạo mới
  • Thông báo hoàn thành

Chúng ta cùng xem nội dung cụ thể của từng dòng lệnh:

Chú ý:

  • Dòng lệnh Tìm dòng cuối sẽ là tìm dòng cuối cùng trong bảng danh sách có chứa dữ liệu, sau đó sẽ cộng thêm 1 dòng để dòng cuối này là dòng trống => Tại dòng này sẽ thêm dữ liệu
  • Khi lưu nội dung vào các cột thì lưu ý từng cột ứng với từng vị trí ô nhập dữ liệu => Cần ghi chú để xác định rõ
  • Sau khi thêm nội dung vào bảng danh sách => Cần xóa nội dung đã nhập ở vùng nhập dữ liệu => Có thể nhập mới nội dung tiếp theo được ngay
  • Có thông báo hoàn thành để khi thực hiện 1 lệnh nhiều thao tác thì chúng ta cần biết khi nào hoàn thành toàn bộ các thao tác.

3. Gán Macro vào nút lệnh và kiểm tra lệnh

Sau khi hoàn thành Sub Lenh_Luu, chúng ta gán Macro vào nút Lưu trên sheet bằng chức năng Assign Macro (tương tự với bài trước)

Chúng ta có thể thử nhập dữ liệu và chạy lệnh Lưu để kiểm tra xem lệnh này chạy đúng chưa nhé.

Và đây là kết quả:

Ở dòng 12 chúng ta đã thêm mới nhân viên có Mã NV005, tên là Test => Thông báo hoàn thành thao tác, các nội dung đã vào đúng vị trí mong muốn.

Chúc các bạn thành công!

Đón xem bài sau: Phần 3: Lấy thông tin bất kỳ trong bảng danh sách vào form