Cách VBA chỉ chạy khi khớp giá trị?

Liên hệ QC

lhp0988

Thành viên mới
Tham gia
30/5/18
Bài viết
5
Được thích
0
Chào mọi người e mới tập VBA mà đang cần cái này tìm hoài không thấy nên hỏi
Em có cột C1 chứa ngày phép e muốn khi cột C1 này trở về 0 thì hiện cái msgbox thông báo hết ngày phép và ngược lại khi chưa về 0 thì không hiện
Mong mọi người giúp đỡ
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Row = 1 Then
If Cells(1, 3).Value <> "" And Cells(1, 3).Value = 0 Then
MsgBox "Het ngay nghi phep"
End If
End If
End Sub
 
Upvote 0
Mình nghỉ cái ni xài phương thức CF cũng được; Bạn thử xem aao!
 
Upvote 0
Cái này thì nó đâu có hiện cái msgbox hả bạn. Mình cũng làm cái này để thay đổi màu khi nó trở về 0 nhưng thấy có thông báo để biết thì hay hơn
Bài đã được tự động gộp:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Row = 1 Then
If Cells(1, 3).Value <> "" And Cells(1, 3).Value = 0 Then
MsgBox "Het ngay nghi phep"
End If
End If
End Sub
Cái này add vào thấy im ru à bạn không thấy chạy
 
Upvote 0
Tôi đang hiểu là bạn muốn thay đổi ô C1, khi ô C1 có giá trị =0 thì đưa ra thông báo. Bạn xem file nhé.
 

File đính kèm

  • ThongBao.xlsm
    12.8 KB · Đọc: 3
Upvote 0
Tôi đang hiểu là bạn muốn thay đổi ô C1, khi ô C1 có giá trị =0 thì đưa ra thông báo. Bạn xem file nhé.
À ý mình là trong ô có công thức nha bạn. Lúc nhập liệu công thức trong ô nó sẽ trừ ngày phép. Khi ngày phép trong ô bị trừ tới 0 thì msgbox mới bật lên thông báo
 
Upvote 0
À ý mình là trong ô có công thức nha bạn. Lúc nhập liệu công thức trong ô nó sẽ trừ ngày phép. Khi ngày phép trong ô bị trừ tới 0 thì msgbox mới bật lên thông báo
Vậy thì bạn cứ viết công thức của bạn vào ô C1 đó. nếu giá trị công thức đó =0 thì sẽ có cảnh báo đấy.
 
Upvote 0
Vậy thì bạn cứ viết công thức của bạn vào ô C1 đó. nếu giá trị công thức đó =0 thì sẽ có cảnh báo đấy.
Mình có thử rồi bạn. Ngay trên file của bạn luôn trong C1 mình viết là =A1-B1 thì khi mình điền ô A1 là 1 và ô B1 là 1 thì ô C1 nhảy về 0 nhưng mà không hiện thông báo
 
Upvote 0
Vậy thì bạn cứ viết công thức của bạn vào ô C1 đó. nếu giá trị công thức đó =0 thì sẽ có cảnh báo đấy.
Với code của bạn ở trên thì nó sẽ không chạy.Vì code bạn đặt sự kiện ở cột C.Mà thao tác họ làm ở cột A hoặc B nên sự kiện không chạy nên không ra thông báo nhé.
 
Upvote 0
Dơn giản mà.Bạn làm cho nó sự kiện ở cột A với B điều kiện kiểm tra ở cột C là được.
Như thế thì là rất cụ thể rồi, giả sử công thức ở ô C1 nó ko liên quan đến cột A và B mà ở một cột bất kỳ (tự người dùng thiết lập) thì có cách nào ko?
 
Upvote 0
Như thế thì là rất cụ thể rồi, giả sử công thức ở ô C1 nó ko liên quan đến cột A và B mà ở một cột bất kỳ (tự người dùng thiết lập) thì có cách nào ko?
Bạn thử cái này.
Mã:
Public vitri As Long
Private Sub Worksheet_Change(ByVal Target As Range)
   vitri = Target.Row
End Sub
Private Sub Worksheet_Calculate()
    If Range("C" & vitri).Value = 0 Then MsgBox "het roi " & vitri
End Sub
 
Upvote 0
Cám ơn bạn snow25, vấn đề đã được giải quyết, bạn lhp0988 thử xem nhé.
 
Upvote 0
Bạn thử cái này.
Mã:
Public vitri As Long
Private Sub Worksheet_Change(ByVal Target As Range)
   vitri = Target.Row
End Sub
Private Sub Worksheet_Calculate()
    If Range("C" & vitri).Value = 0 Then MsgBox "het roi " & vitri
End Sub
cám ơn bạn nhiều lắm nhưng có cách nào bỏ cái số dòng hiên ra trong msgbox không bạn
 
Upvote 0
Thay lệnh
If Range("C" & vitri).Value = 0 Then MsgBox "het roi " & vitri​
bằng
If Range("C" & vitri).Value = 0 Then MsgBox "het roi "​

 
Upvote 0
Web KT
Back
Top Bottom