Menu

Tự động hóa việc gửi thông báo khi có thay đổi dữ liệu quan trọng bằng VBA

Quản Trinh Kiên 13/06/2026 03:05 548 lượt xem 1 trả lời

Chào các bác, tình hình là em đang cần làm một cái báo cáo theo dõi tiến độ dự án, và có một vài ô dữ liệu cực kỳ quan trọng mà em muốn được thông báo ngay lập tức (qua email hoặc pop-up) khi có bất kỳ thay đổi nào. Em đang nghĩ đến việc dùng VBA để làm việc này, nhưng chưa rõ cách triển khai.

Cụ thể, em muốn: Khi giá trị trong ô B5 của sheet 'Progress' thay đổi và vượt quá 100, hoặc khi ô C10 của sheet 'Status' chuyển sang trạng thái 'Hoàn thành', thì một thông báo sẽ hiện lên hoặc một email sẽ được gửi đi.

Em đã thử tìm hiểu về sự kiện Worksheet_Change, nhưng không biết làm sao để kiểm tra được giá trị cụ thể của ô và kích hoạt hành động mong muốn. Có bác nào đã từng làm qua hoặc có kinh nghiệm xử lý tình huống tương tự, có thể chia sẻ cho em một đoạn code mẫu hoặc hướng dẫn chi tiết cách làm không ạ?

Em xin cảm ơn!

1

Chào bạn,

Ý tưởng tự động hóa thông báo khi có thay đổi dữ liệu quan trọng bằng VBA rất hay đó. Để làm được việc này, bạn có thể dùng sự kiện Worksheet_Change trong VBA. Sự kiện này sẽ kích hoạt mỗi khi có dữ liệu thay đổi trong một sheet cụ thể.

Với yêu cầu của bạn, bạn có thể viết code như sau:

Trong module của sheet Progress:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$5" And Target.Value > 100 Then
        MsgBox "Giá trị ô B5 đã vượt quá 100!", vbExclamation
        ' Hoặc thêm code gửi email ở đây
    End If
End Sub

Trong module của sheet Status:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$10" And Target.Value = "Hoàn thành" Then
        MsgBox "Trạng thái ô C10 đã chuyển sang 'Hoàn thành'!", vbInformation
        ' Hoặc thêm code gửi email ở đây
    End If
End Sub

Bạn có muốn thử nghiệm gửi email không? Có thể sẽ cần thêm một chút code để xử lý việc đó.

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký