Đóng Application và workbook bằng button mới

Liên hệ QC

spacemanforever

Thành viên hoạt động
Tham gia
8/10/08
Bài viết
113
Được thích
71
Chào GPE!
Em vô hiệu hóa button X của application và chỉ cho đóng bằng button EXIT (tự tạo) thì phải viết code thế nào vậy.
Em có mô tả trong sheet INTRODUCE ở file đính kèm.
Mong được mọi người hỗ trợ.;;;;;;;;;;;;;;;;;;;;;;
 

File đính kèm

  • close.xls
    22 KB · Đọc: 88
Chào GPE!
Em vô hiệu hóa button X của application và chỉ cho đóng bằng button EXIT (tự tạo) thì phải viết code thế nào vậy.
Em có mô tả trong sheet INTRODUCE ở file đính kèm.
Mong được mọi người hỗ trợ.;;;;;;;;;;;;;;;;;;;;;;
Vầy hổng biết có được không
1> Trong Module
PHP:
Public Chk As Boolean
Sub CloseWb()
  Chk = True
  ThisWorkbook.Close (True)
End Sub
2> Trong Workbook
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Chk = False Then
    Cancel = True
    MsgBox "Ban phai bam nut 'Exit Workbook' de dong file"
  End If
End Sub
Và Button sẽ liên kết với Sub CloseWb
(làm vậy thôi chứ mấy trờ vớ vấn này chẳng ngăn cản được người biết dùng code)
 

File đính kèm

  • DisableX.xls
    20 KB · Đọc: 197
Upvote 0
Cảm ơn anh ndu...
em cũng mới tìm được cách, nhưng thấy cách bác hay hơn.
Thanks
 

File đính kèm

  • closing.xls
    25.5 KB · Đọc: 130
Upvote 0
Cảm ơn anh ndu...
em cũng mới tìm được cách, nhưng thấy cách bác hay hơn.
Thanks
2 code gần như giống nhau, chỉ khác 1 điểm là trong file của bạn dùng Application.Quit ---> Tôi nghĩ không nên! Vì mình đóng Wb của mình thôi chứ, cớ sao lại đóng toàn bộ Excel (bạn mở 3 file, nó đóng tất tần tật của bạn luôn)
Ngoài ra code trong file bạn có 1 lỗi rất buồn cười:
- Bạn gõ gì đó vào 1 cell
- Xong bạn bấm nút Exit, hộp thoại Save hiện ra, bạn hãy bấm Cancel
- Từ bây giờ, bạn có thể đóng file bằng nút X thoải mái rồi đấy (vì biến AllowClose đã biến thành TRUE rồi)
Ẹc... Ẹc...
 
Lần chỉnh sửa cuối:
Upvote 0
2 code gần như giống nhau, chỉ khác 1 điểm là trong file của bạn dùng Application.Quit ---> Tôi nghĩ không nên! Vì mình đóng Wb của mình thôi chứ, cớ sao lại đóng toàn bộ Excel (bạn mở 3 file, nó đóng tất tần tật của bạn luôn)

Ah!
Riêng vấn đề nay em mới giải quyết được bằng việc dùng code sau:
PHP:
Sub ex()
    Dim wb As Integer
    AllowClose = True
    
  
    
Application.IgnoreRemoteRequests = False
Application.DisplayAlerts = True

wb = Application.Workbooks.Count
If wb < 2 Then
Application.Quit
Else
ThisWorkbook.Close
End If

End Sub
Xin được anh chỉ giáo thêm.@$@!^%@$@!^%
 
Upvote 0
Ah!
Riêng vấn đề nay em mới giải quyết được bằng việc dùng code sau:
PHP:
Sub ex()
    Dim wb As Integer
    AllowClose = True
    
  
    
Application.IgnoreRemoteRequests = False
Application.DisplayAlerts = True

wb = Application.Workbooks.Count
If wb < 2 Then
Application.Quit
Else
ThisWorkbook.Close
End If

End Sub
Xin được anh chỉ giáo thêm.@$@!^%@$@!^%
Đây là cách làm của tôi
1> Khi bạn bấm nút Close, hoặc Ctrl +F4, hoặc Alt + F4 thì lập tức sẽ xuất hiện thông báo

untitled1.JPG

2> Khi bạn bấm nút Exit Workbook thì sẽ thấy thông báo này:

untitled2.JPG

Cho phép bạn ĐÓNG VÀ LƯU hoặc ĐÓNG VÀ KHÔNG LƯU hoặc KHÔNG LÀM GÌ CẢ (Hủy)
code:
PHP:
Public Chk As Boolean
Sub CloseWb()
  Dim Ans As Long
  With CreateObject("WScript.Shell")
    Ans = .Popup(Evaluate("tb1"), , "THÔNG BÁO", vbYesNoCancel)
  End With
  If Ans <> 2 Then
    Chk = True
    ThisWorkbook.Close (Ans = 6)
  End If
End Sub
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Chk = False Then
    Cancel = True
    Application.ExecuteExcel4Macro ("ALERT(""" & Evaluate("tb2") & """,2)")
  Else
    If Workbooks.Count = 1 Then Application.Quit
  End If
End Sub
Với tb1tb2 là 2 thông báo bằng tiếng Việt Unicode (nằm trong Define name)
--------------------------------------------------------
(Xem lại bài viết của mình, chẳng hiểu sao hình ảnh lại nằm lung tung thế ---> Vừa chỉnh lại)
 

File đính kèm

  • DisableCloseWb.xls
    24 KB · Đọc: 353
Lần chỉnh sửa cuối:
Upvote 0
Bác ơi, nói rõ hơn giúp e được ko?

E copy cái button của bác sang 1 file excel khác nhưng ko chạy
 
Upvote 0
Em có copy ca code rồi mà nó vẫn ko chạy :(

Em đành làm cách nhấn vào nút thì quit luôn, ko hiển thị thông báo nữa :(

Dùng : Application.Quit
 
Upvote 0
Em có copy ca code rồi mà nó vẫn ko chạy :(

Em đành làm cách nhấn vào nút thì quit luôn, ko hiển thị thông báo nữa :(

Dùng : Application.Quit
Ah...
Còn 1 thứ có lẽ bạn quên copy, đó là Define name ---> Vào file của tôi, bấm Ctrl + F3 sẽ thấy mấy name này
 
Upvote 0
Em đã làm được theo hướng dẫn của bác rồi ạ,

Em cảm ơn bác

Nhân tiện đây bác có thể cho e hỏi luôn 1 vấn đề nhỏ ko ạ

Cho e hỏi chút nhé

Em có 1 file excel, có sheet 1, sheet2, sheet3

Trong Sheet 1 của e có Cột A, dòng 1: A1 chứa logo

Em muốn 1 lệnh mà các sheet2, sheet3 tự động chèn logo này vào thì làm thế nào, ko phải copy, paste

Như kiểu file đính kèm

http://www.mediafire.com/?3r82ocip002d2nd
 
Upvote 0
Em đã làm được theo hướng dẫn của bác rồi ạ,

Em cảm ơn bác

Nhân tiện đây bác có thể cho e hỏi luôn 1 vấn đề nhỏ ko ạ

Cho e hỏi chút nhé

Em có 1 file excel, có sheet 1, sheet2, sheet3

Trong Sheet 1 của e có Cột A, dòng 1: A1 chứa logo

Em muốn 1 lệnh mà các sheet2, sheet3 tự động chèn logo này vào thì làm thế nào, ko phải copy, paste

Như kiểu file đính kèm

http://www.mediafire.com/?3r82ocip002d2nd
Không thể hỏi "chen ngang" kiểu vậy được
Bạn đã hỏi tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?59042-Link-Logo-giữa-các-sheet
Vậy cứ chờ người ta trả lời cho bạn
(mà sao không post file trực tiếp lên diễn đàn?)
 
Upvote 0
Vâng, e thấy số lượng vào đọc mà ko thấy ai trả lời

Trước e có mấy bài cũng chỉ có bác trả lời thôi,

Nhìn số lượng cảm ơn của bác nhiều thế, chắc là cao thủ nên e hỏi bác :)

E ko thấy cho đính kèm file ở đâu nên up lên cái media ạ :(
 
Lần chỉnh sửa cuối:
Upvote 0
Vầy hổng biết có được không
1> Trong Module
PHP:
Public Chk As Boolean
Sub CloseWb()
  Chk = True
  ThisWorkbook.Close (True)
End Sub
2> Trong Workbook
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Chk = False Then
    Cancel = True
    MsgBox "Ban phai bam nut 'Exit Workbook' de dong file"
  End If
End Sub
Và Button sẽ liên kết với Sub CloseWb
(làm vậy thôi chứ mấy trờ vớ vấn này chẳng ngăn cản được người biết dùng code)

Mình gửi file lên, nhờ bạn giúp:
1/ Mình copy, có chỉnh lại chút, nhưng ko biết sai phần nào nên ko thoát được khi bấm bút "Thoát chương trình"
2/ Khi sheetx.select, có cần thêm dòng lệnh sheetx.active ko, để khi chuyển qua sheetx thì có thể nhập được ngay dữ liệu trong ô trỏ chuột (trước đó thì phai click 1 cái vào sheet thì mới nhập liệu đc.
3/ Chỉ có mấy dòng lệnh đơn giản, dung lượng file den 2Mbs, ko biết có dư thừa/ sai gi ko.


Thanks
 

File đính kèm

  • Hoa don nuoc block A-Ver1.0.zip
    401.3 KB · Đọc: 30
Upvote 0
Mình gửi file lên, nhờ bạn giúp:
1/ Mình copy, có chỉnh lại chút, nhưng ko biết sai phần nào nên ko thoát được khi bấm bút "Thoát chương trình"
2/ Khi sheetx.select, có cần thêm dòng lệnh sheetx.active ko, để khi chuyển qua sheetx thì có thể nhập được ngay dữ liệu trong ô trỏ chuột (trước đó thì phai click 1 cái vào sheet thì mới nhập liệu đc.
3/ Chỉ có mấy dòng lệnh đơn giản, dung lượng file den 2Mbs, ko biết có dư thừa/ sai gi ko.


Thanks
Làm lại cho bạn phần thoát chương trình nhé
trong file của bạn có 2 nút "Thoát chương trình" và "Thoát Excel" tôi nghĩ chỉ cần 1 nút là được rồi. Nếu trên màn hình đang mở nhiều file, bấm nút nó sẽ thoát riêng Workbook của ta thôi, các file khác vẫn để nguyên. Ngược lại, trên màn hình chỉ có mỗi workbook của ta, bấm nút nó sẽ thoát toàn bộ Excel
 

File đính kèm

  • Hoa don nuoc block A-Ver1.0.rar
    126.1 KB · Đọc: 119
Upvote 0
Bạn giúp thêm giùm mình: mình ko muốn ng sử dụng thấy công thức và điều chỉnh, nếu dùng tính năng hidden/lock, thì các sheet có data validation ko hoạt động đc.

Viết code như thế nào.

Cám ơn bạn
TD
 
Upvote 0
Web KT
Back
Top Bottom