Không cho thoát Excel bằng nút X góc phải màn hình (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,065
Được thích
175
Các bạn có thể chỉ giúp đường link, bài của thầy ndu
Đại khái là "Không cho thoát Excel bằng nút X góc phải màn hình"
Cụ thể như hình đính kèm
Xin cảm ơn
Vì hình nhỏ không thấy chữ nên tôi fghi ra như sau
"Bạn muốn thoát chương trình"
"Bấm nút Yes để đóng và lưu"
"Bấm nút No để đóng và không lưu"
Bấm Cancel để hủy"
Hinh-1.jpg
 
Lần chỉnh sửa cuối:
Các bạn có thể chỉ giúp đường link, bài của thầy ndu
Đại khái là "Không cho thoát Excel bằng nút X góc phải màn hình"
Cụ thể như hình đính kèm
Xin cảm ơn
Vì hình nhỏ không thấy chữ nên tôi fghi ra như sau
"Bạn muốn thoát chương trình"
"Bấm nút Yes để đóng và lưu"
"Bấm nút No để đóng và không lưu"
Bấm Cancel để hủy"

Ba cái này chỉ để tham khảo chơi cho vui thôi, chứ không nên tìm hiểu sâu đề làm gì.

Nếu bạn đã kha khá dùng được UserForm thì hãy tính đến nó.
 
Upvote 0
Các bạn có thể chỉ giúp đường link, bài của thầy ndu
Đại khái là "Không cho thoát Excel bằng nút X góc phải màn hình"
Cụ thể như hình đính kèm
Xin cảm ơn
Vì hình nhỏ không thấy chữ nên tôi fghi ra như sau
"Bạn muốn thoát chương trình"
"Bấm nút Yes để đóng và lưu"
"Bấm nút No để đóng và không lưu"
Bấm Cancel để hủy"
Gửi bạn toàn bộ code
1> Code trong Module:
Mã:
Public bChk As Boolean
Sub CloseWb()
  Dim Ans As VbMsgBoxResult, Msg As String
  Msg = UniConvert("Ba5n muo61n thoa1t chu7o7ng tri2nh?" & vbLf & _
                 "Ba61m 'Yes' d9e63 d9o1ng va2 lu7u" & vbLf & _
                 "Ba61m 'No' d9e63 d9o1ng va2 kho6ng lu7u" & vbLf & _
                 "Ba61m 'Cancel' d9e63 hu3y", "VNI")
  Ans = CreateObject("WScript.Shell").Popup(Msg, , "THÔNG BÁO", vbYesNoCancel)
  If Ans <> vbCancel Then
    bChk = True
    ThisWorkbook.Close (Ans = vbYes)
  End If
End Sub
Function UniConvert(ByVal text As String, ByVal InputMethod As String) As String
  Dim VNI_Type, Telex_Type, CharCode, Temp, i As Long
  UniConvert = text
  VNI_Type = Array("a81", "a82", "a83", "a84", "a85", "a61", "a62", "a63", "a64", "a65", "e61", _
      "e62", "e63", "e64", "e65", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", "o74", _
      "o75", "u71", "u72", "u73", "u74", "u75", "a1", "a2", "a3", "a4", "a5", "a8", "a6", "d9", _
      "e1", "e2", "e3", "e4", "e5", "e6", "i1", "i2", "i3", "i4", "i5", "o1", "o2", "o3", "o4", _
      "o5", "o6", "o7", "u1", "u2", "u3", "u4", "u5", "u7", "y1", "y2", "y3", "y4", "y5")
  Telex_Type = Array("aws", "awf", "awr", "awx", "awj", "aas", "aaf", "aar", "aax", "aaj", "ees", _
      "eef", "eer", "eex", "eej", "oos", "oof", "oor", "oox", "ooj", "ows", "owf", "owr", "owx", _
      "owj", "uws", "uwf", "uwr", "uwx", "uwj", "as", "af", "ar", "ax", "aj", "aw", "aa", "dd", _
      "es", "ef", "er", "ex", "ej", "ee", "is", "if", "ir", "ix", "ij", "os", "of", "or", "ox", _
      "oj", "oo", "ow", "us", "uf", "ur", "ux", "uj", "uw", "ys", "yf", "yr", "yx", "yj")
  CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
      ChrW(7849), ChrW(7851), ChrW(7853), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
      ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), ChrW(7899), ChrW(7901), ChrW(7903), _
      ChrW(7905), ChrW(7907), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), ChrW(7921), ChrW(225), _
      ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), ChrW(259), ChrW(226), ChrW(273), ChrW(233), ChrW(232), _
      ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), ChrW(7881), ChrW(297), ChrW(7883), _
      ChrW(243), ChrW(242), ChrW(7887), ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(250), ChrW(249), _
      ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925))
  Select Case UCase(InputMethod)
    Case Is = "VNI": Temp = VNI_Type
    Case Is = "TELEX": Temp = Telex_Type
  End Select
  For i = 0 To UBound(CharCode)
    UniConvert = Replace(UniConvert, Temp(i), CharCode(i))
    UniConvert = Replace(UniConvert, UCase(Temp(i)), UCase(CharCode(i)))
  Next i
End Function

2> Code trong Workbook:

Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim Msg
  Msg = UniConvert("Ba5n pha3i ba61m nu1t 'Exit Workbook' d9e63 thoa1t chu7o7ng tri2nh.", "VNI")
  If bChk = False Then
    Cancel = True
    CreateObject("WScript.Shell").Popup Msg, , "THÔNG BÁO", vbOKOnly
  Else
    If Workbooks.Count = 1 Then Application.Quit
  End If
End Sub
Vẽ 1 nút trên bảng tính, Asign Macro nút ấy với Sub CloseWb
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom