Trong VBA bạn có thể tạo ra 1 mẫu biểu (form) nhập dữ liệu theo ý muốn, để từ dữ liệu trên form đó đưa vào trong Excel. Tuy nhiên trong một số mẫu form chúng ta muốn nội dung trong 1 textbox tự động thay đổi, tự động tính toán khi thay đổi giá trị trong 1 textbox khác. Cụ thể là trong trường hợp này chúng ta muốn textbox Thành tiền sẽ tự động thay đổi khi thay đổi giá trị trong các textbox Số lượng hoặc Đơn giá. Việc này làm thế nào? Hãy cùng học Excel tìm hiểu cách thiết lập tự động tính thành tiền khi thay đổi số lượng hoặc đơn giá trong userform VBA:
Xem nhanh
Để tạo được mẫu UserForm này, chúng ta sẽ mở cửa sổ VBA trong Excel lên (sử dụng phím tắt Alt + F11)
Trong cửa sổ VBA bạn click chuột phải vào phần Project và chọn Insert > UserForm
Trong Userform1 (là Userform vừa mới Insert ra) bạn tạo các mục như sau:
Tiếp theo chúng ta sẽ đổi tên các textbox lần lượt là:
Phần tạo mẫu Userform này mình chỉ hướng dẫn sơ qua vì đây chỉ là khâu chuẩn bị, còn nội dung chính của chúng ta là ở phần sau.
Việc nội dung trong Textbox Thành tiền (tbTT) tự động thay đổi mỗi khi chúng ta thay đổi giá trị trong Textbox Số lượng (tbSL) hoặc Textbox Đơn giá (tbDG) được diễn đạt lại theo logic sau:
Để tạo sự kiện này chúng ta sẽ bấm double click chuột vào tbSL và tbDG (tạo 2 sự kiện riêng)
Chúng ta có thể thêm 1 sự kiện là khi Userform mới được mở lên thì các textbox sẽ có nội dung là bằng 0 với sự kiện UserForm_Initialize. Đây là giá trị ban đầu của các textbox.
Kết quả như sau:
Việc tính toán khi thay đổi số lượng phải tuân theo 1 số nguyên tắc như sau:
Nội dung này được viết thành code như sau:
Việc tính toán khi thay đổi đơn giá phải tuân theo 1 số nguyên tắc như sau:
Nội dung này được viết thành code như sau:
Có thể thấy câu lệnh trong 2 Private Sub này là giống nhau, chỉ khác là áp dụng trên sự kiện nào mà thôi. Bởi vì việc tính toán trong textbox Thành tiền phụ thuộc đồng thời vào 2 textbox trên nên phải viết đồng thời trong cả 2 sự kiện thay đổi textbox.
Bây giờ chúng ta có thể chạy thử Userform để kiểm tra kết quả.
Các bạn có thể tải về file mẫu tại địa chỉ: http://bit.ly/2J70Y9f
Phần phía trên mình mới giới thiệu đến các bạn cách viết lệnh đơn giản nhất để hiểu về logic cũng như cách chuyển từ logic sang code trên VBA. Tuy nhiên để có thể hoàn thiện yêu cầu trên chúng ta còn phải tìm hiểu về:
Rất nhiều câu hỏi phải không nào. Để giúp các bạn nâng cao kiến thức về VBA thì Học Excel Online xin giới thiệu với các bạn khóa học VBA101 – Tự động hóa Excel với lập trình VBA dành cho người mới bắt đầu. Đây là khóa học rất hữu ích dành cho bạn. Hãy cùng khám phá nào