VBA trong Excel: Cập nhật lại khu vực nhập liệu

Trong loạt bài viết này, chúng ta sẽ đi vào hướng dẫn việc sử dụng VBA để quản lý dữ liệu trên các bảng liệt kê (ví dụ như danh sách sản phẩm, danh sách nhân sự…), với một tổng số 5 phần:

  • Phần 1: Cập nhật lại khu vực nhập liệu
  • Phần 2: Thêm dữ liệu mới vào bảng liệt kê
  • Phần 3: Chọn lựa thông tin từ bảng danh sách để đưa vào form
  • Phần 4: Xóa đi thông tin cụ thể trong bảng liệt kê
  • Phần 5: Cập nhật thông tin từ Form vào bảng liệt kê

Chúng ta hãy cùng nhau tìm hiểu về phần đầu tiên thông qua bài tập dưới đây:

Dưới đây là bảng dữ liệu của Danh sách nhân viên:

 

Điều kiện yêu cầu:

  • Tạo ra button Tạo mới để làm mới lại khu vực nhập liệu tại A3:A5 (Button Tạo mới)
  • Phối hợp cùng chức năng khóa sheet để hạn chế việc tự ý chỉnh sửa nội dung của bảng

Phương pháp thực hiện:

Đối với kiểu quản lý dữ liệu theo dàng bảng danh sách, cụ thể là danh sách nhân viên, đây là một ví dụ cơ bản.

Không cần tạo UserForm bằng VBA, chúng ta có thể tạo hẳn một form ngay trong Sheet chứa bảng danh sách. Nhờ vậy, việc Thêm, Sửa và Xóa dữ liệu trên bảng Danh sách nhân viên sẽ trở nên đơn giản và nhanh chóng.

1. Phân tích đề bài

  • Cho phép nhập liệu tại ô B3 (mã nhân viên), B5 (tên), D3 (ngày tháng năm sinh), D5 (bộ phận) ngay cả khi sheet đang được khóa (Protect sheet). Các vị trí khác không được chỉnh sửa.
  • Sử dụng VBA để đưa dữ liệu từ các ô B3, B5, D3, D5 vào cuối bảng danh sách (Thêm vào hàng cuối). => sau khi thêm dữ liệu xong, tiếp tục giữ nguyên sheet đang bị khóa (lưu tự động bằng lệnh Save).
  • Sử dụng VBA để loại bỏ dữ liệu trong các ô B3, B5, D3, D5 (tiến hành xóa tự động bằng lệnh Tạo mới)

2. Bước thực hiện lệnh Tạo mới

  • Mở cửa sổ VBA (sử dụng tổ hợp phím Alt + F11)
  • Khởi tạo Module mới và tạo một Sub có tên Lenh_Tao_Moi trong Module đó
  • Phân tích nội dung cần thực hiện trong Sub Lenh_Tao_Moi như sau:
  • Do tất cả các thao tác được thực hiện tại Sheet1, ta có thể áp dụng câu lệnh

Vậy nên khi các lệnh khác được đặt trong With Sheet1, ta không cần phải nhắc lại tên của sheet.

  • Lệnh để mở khóa sheet viết như sau:
  • Và lệnh để xóa dữ liệu của một khu vực viết như sau:

Khu vực cần xóa là các ô B3, B5, D3, D5

Vì ô B4 và D4 không chứa dữ liệu, chúng ta có thể kết hợp B3 và B5 thành B3:B5 và D3 cùng D5 thành D3:D5

=> Ta được câu lệnh cuối cùng như sau:

  • Lệnh để khóa sheet lại được viết dưới dạng sau:

Do đó, đưa tất cả vào trong một Sub ta có đầy đủ các lệnh như sau:

3. Thiết lập định dạng cho khu vực nhập dữ liệu

Ở những ô được phép nhập liệu trong khi sheet đang khóa, chúng ta cần định dạng lại cell đó để có thể nhập được liệu (Format Cells >Protection > Bỏ chọn mục Locked).

4. Gán Macro cho button Tạo mới

  • Vẽ button Tạo mới sử dụng chức năng Insert > Shapes và vẽ một hình chữ nhật > Định dạng nội dung trong hình theo ý muốn, và đặt tên (edit text) là Tạo mới
  • ClickBằng cách nhấn chuột phải vào dấu nút Tạo mới, bạn chọn Assign Macro
  • Lựa chọn Macro Lenh_Tao_Moi sau đó nhấn ok

Hãy tiến hành kiểm tra nút lệnh mới được tạo bằng việc điền thông tin vào các cell B3, B5, D3, D5 sau đó bấm vào nút Tạo mới để xem kết quả.

Chúc mọi người áp dụng thành công!

Các bạn hãy chờ đón bài viết tiếp theo: Phần 2: Xây dựng nút lệnh để lưu trữ dữ liệu từ khu vực Nhập liệu vào Bảng danh sách nhân viên.

Hãy cùng Siêu Marketing khám phá khả năng của Excel VBA!

VBA mang lại nhiều tiện ích, hỗ trợ công việc hiệu quả: từ việc tăng tốc độ xử lí trên Excel, tạo báo cáo tự động, đến việc điều khiển các phần mềm khác như Word, Power Point, Outlook… giúp biến tập tin Excel của bạn thành một phần mềm chuyên nghiệp.

Để nắm vững VBA một cách hệ thống và toàn diện, các bạn hãy tham gia khóa học VBA101 – VBA cơ bản dành cho người mới bắt đầu do Siêu Marketing tổ chức. Hiện tại có nhiều khuyến mãi dành cho những bạn đăng ký khóa học này. Xem chi tiết tại:

Trương Thành Tài

    [submission_id id-lien-he]

    0
      0
      Đơn hàng
      Đơn hàng trốngQuay lại Shop