Tạo hộp thông báo nhấn xác nhận trước khi cho chạy 1 lệnh của 1 module

Liên hệ QC

thanhdo89

Thành viên chính thức
Tham gia
8/7/11
Bài viết
52
Được thích
6
Anh chị nào biết, chỉ em tạo 1 hộp thoại thông báo khi e bấm vào 1 macro cho chạy 1 lệnh module được ko ạ, vì file của em có khoảng hơn 10 module, mà phải làm lần lượt từng module 1, em muốn khi em bấm vào 1 module thì nó sẽ hiện lên 1 thông báo (giả sử: "Bạn muốn thực hiện lệnh Module 1", khi em bấm "ok" thì nó mới thực hiện, còn bấm "no" thì nó sẽ không chạy lệnh module ấy nữa
ai biết chỉ giúp em với ạ, em cám ơn ạ, hi, hay em phải chèn gì thêm vào 1 module để nó hiện thông báo lên ạ,
Đây là ví dụ của 1 module của em ạ.
Sub G_LAY_NHOM_1() 'LAY HO CHO VAO NHOM 1, XOA CAC HO O NHOM 2
Dim J As Integer
Dim Er As Long
On Error Resume Next
For J = 3 To Sheets.Count
Er = sh.Range("E" & Rows.Count).End(3).Row
Sheets(J).Activate
With ActiveSheet.Range("A13").CurrentRegion
.AutoFilter 14, "=2" 'COT 13 _NHOM = 2 THI DE LAI, NHOM = 1 THI XOA DI
.Offset(1).Resize(, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
Next J
End Sub


1562142595759.png
 

File đính kèm

  • N1_MauHo.xls
    320 KB · Đọc: 9
Anh chị nào biết, chỉ em tạo 1 hộp thoại thông báo khi e bấm vào 1 macro cho chạy 1 lệnh module được ko ạ, vì file của em có khoảng hơn 10 module, mà phải làm lần lượt từng module 1, em muốn khi em bấm vào 1 module thì nó sẽ hiện lên 1 thông báo (giả sử: "Bạn muốn thực hiện lệnh Module 1", khi em bấm "ok" thì nó mới thực hiện, còn bấm "no" thì nó sẽ không chạy lệnh module ấy nữa
ai biết chỉ giúp em với ạ, em cám ơn ạ, hi, hay em phải chèn gì thêm vào 1 module để nó hiện thông báo lên ạ,
Đây là ví dụ của 1 module của em ạ.
Sub G_LAY_NHOM_1() 'LAY HO CHO VAO NHOM 1, XOA CAC HO O NHOM 2
Dim J As Integer
Dim Er As Long
On Error Resume Next
For J = 3 To Sheets.Count
Er = sh.Range("E" & Rows.Count).End(3).Row
Sheets(J).Activate
With ActiveSheet.Range("A13").CurrentRegion
.AutoFilter 14, "=2" 'COT 13 _NHOM = 2 THI DE LAI, NHOM = 1 THI XOA DI
.Offset(1).Resize(, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
Next J
End Sub


View attachment 220426
không biết có đúng ý chị không nhưng chị thêm đoạn
MsgBox "noi dung thong bao" trước khi chạy code là được. Em có góp ý thế này chị tạo thêm 1 module gọi lần lượt các module theo thứ tự cần .bấm 1 lần cho khỏe chị ạ

Ví dụ: chị có sub A() và Sub B()
tạo Sub C()
Call A
Call B
End Sub
 
Upvote 0
không biết có đúng ý chị không nhưng chị thêm đoạn
MsgBox "noi dung thong bao" trước khi chạy code là được. Em có góp ý thế này chị tạo thêm 1 module gọi lần lượt các module theo thứ tự cần .bấm 1 lần cho khỏe chị ạ

Ví dụ: chị có sub A() và Sub B()
tạo Sub C()
Call A
Call B
End Sub
Dạ, em là con trai, em phải chạy từng code 1 chị ạ, vì có thể dữ liệu nhập vào có thể ko giống nhau, khi chạy module nào bị dừng thì có khả năng dữ liệu bị sai, em phải sửa dữ liệu chị ạ, à, hay em lại phải chèn thêm 10 module khác ạ, và chèn từng module khác vào ạ, hix
 
Upvote 0
Dạ, em là con trai, em phải chạy từng code 1 chị ạ, vì có thể dữ liệu nhập vào có thể ko giống nhau, khi chạy module nào bị dừng thì có khả năng dữ liệu bị sai, em phải sửa dữ liệu chị ạ, à, hay em lại phải chèn thêm 10 module khác ạ, và chèn từng module khác vào ạ, hix
mình cũng là con trai @@ .Đâu cần tao thêm đâu bạn chèn đoạn đó vào code của bạn á là được mà
 
Upvote 0
mình cũng là con trai @@ .Đâu cần tao thêm đâu bạn chèn đoạn đó vào code của bạn á là được mà
Ví dụ đoạn code này bạn chèn giúp mình với, hi
Sub G_LAY_NHOM_1() 'LAY HO CHO VAO NHOM 1, XOA CAC HO O NHOM 2
Dim J As Integer
Dim Er As Long
On Error Resume Next
For J = 3 To Sheets.Count
Er = sh.Range("E" & Rows.Count).End(3).Row
Sheets(J).Activate
With ActiveSheet.Range("A13").CurrentRegion
.AutoFilter 14, "=2" 'COT 13 _NHOM = 2 THI DE LAI, NHOM = 1 THI XOA DI
.Offset(1).Resize(, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
Next J
End Sub
 
Upvote 0
Sub G_LAY_NHOM_1() 'LAY HO CHO VAO NHOM 1, XOA CAC HO O NHOM 2
Dim J As Integer
Dim Er As Long
MsgBox "noi dung thong bao"
On Error Resume Next
For J = 3 To Sheets.Count
Er = sh.Range("E" & Rows.Count).End(3).Row
Sheets(J).Activate
With ActiveSheet.Range("A13").CurrentRegion
.AutoFilter 14, "=2" 'COT 13 _NHOM = 2 THI DE LAI, NHOM = 1 THI XOA DI
.Offset(1).Resize(, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
Next J
End Sub
 
Upvote 0
Anh chị nào biết, chỉ em tạo 1 hộp thoại thông báo khi e bấm vào 1 macro cho chạy 1 lệnh module được ko ạ, vì file của em có khoảng hơn 10 module, mà phải làm lần lượt từng module 1, em muốn khi em bấm vào 1 module thì nó sẽ hiện lên 1 thông báo (giả sử: "Bạn muốn thực hiện lệnh Module 1", khi em bấm "ok" thì nó mới thực hiện, còn bấm "no" thì nó sẽ không chạy lệnh module ấy nữa
ai biết chỉ giúp em với ạ, em cám ơn ạ, hi, hay em phải chèn gì thêm vào 1 module để nó hiện thông báo lên ạ,
Đây là ví dụ của 1 module của em ạ.
Sub G_LAY_NHOM_1() 'LAY HO CHO VAO NHOM 1, XOA CAC HO O NHOM 2
Dim J As Integer
Dim Er As Long
On Error Resume Next
For J = 3 To Sheets.Count
Er = sh.Range("E" & Rows.Count).End(3).Row
Sheets(J).Activate
With ActiveSheet.Range("A13").CurrentRegion
.AutoFilter 14, "=2" 'COT 13 _NHOM = 2 THI DE LAI, NHOM = 1 THI XOA DI
.Offset(1).Resize(, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
Next J
End Sub


View attachment 220426
Bạn thử.
Mã:
Sub abc()
  MsgBox "Xin chao"
End Sub
Sub chaymodule()
    If MsgBox("ban muon chay sub abc khong", vbYesNo) = vbYes Then Call abc
End Sub
 
Upvote 0
Sub G_LAY_NHOM_1() 'LAY HO CHO VAO NHOM 1, XOA CAC HO O NHOM 2
Dim J As Integer
Dim Er As Long
MsgBox "noi dung thong bao"
On Error Resume Next
For J = 3 To Sheets.Count
Er = sh.Range("E" & Rows.Count).End(3).Row
Sheets(J).Activate
With ActiveSheet.Range("A13").CurrentRegion
.AutoFilter 14, "=2" 'COT 13 _NHOM = 2 THI DE LAI, NHOM = 1 THI XOA DI
.Offset(1).Resize(, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
Next J
End Sub
không được anh ơi, em thử như anh rùi, em bấm run thì nó hiện ra thông báo, nhưng em bấm ok, hay bấm close (dấu x) đỏ, thì nó vẫn thực hiện lệnh đó, em muốn nếu nhỡ bấm nhầm thì mình bấm close thì chương trình sẽ không thực hiện lệnh đó cơ
Bài đã được tự động gộp:

Bạn thử.
Mã:
Sub abc()
  MsgBox "Xin chao"
End Sub
Sub chaymodule()
    If MsgBox("ban muon chay sub abc khong", vbYesNo) = vbYes Then Call abc
End Sub
ok, em cám ơn anh/chị nhé, em làm được rùi, em thêm đoạn module ở dưới đoạn kia như anh/chị bảo là được
 
Upvote 0
Web KT
Back
Top Bottom