Giúp sửa code Lưu và thoát bằng From

Liên hệ QC

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE!
Em có vấn đề mà sửa đi sửa lại hoài nó không chạy đúng theo ý mình được.
Em muốn khi thoát File excel thì hiện Form gồm 2 nút Có và Không
- Nếu chọn Có:
+ Trường hợp trên máy tính chỉ mở 1 file này thì Lưu và Thoát luôn ( Code như hiện tại do em viết thì ok rồi )
+ Trường hợp trên máy tính mở file này và các file khác thì cũng chi Lưu và Thoát File này thôi, còn các file khác vẫn bình thường ( Code như hiện tại do em viết thì nó bắt Lưu và Thoát tất cả các File luôn). Em chỉ muốn Lưu và Thoát file em dùng Code thôi, còn các File khác kệ nó. Nhờ các Bác sửa giúp em.

Code của em
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
UserForm1.Show
Cancel = True
End Sub

Private Sub CommandButton1_Click() ' Nút có
Unload Me
ActiveWorkbook.Save
End
End Sub

Private Sub CommandButton2_Click() ' Nút Không
Unload Me
End Sub

Xin chân thành cảm ơn
 

File đính kèm

  • GIup code Thoat excel.xls
    29 KB · Đọc: 18
Em test file trên Excel 2007 thì chạy đúng như yêu cầu, của anh là 2003 thì em không rõ lắm, nhưng về mặt logic thì nó đúng. Anh có thể thử thay
Mã:
Application.Workbooks.Count = 1
thành
Mã:
Application.Workbooks.Count = 0
 
Upvote 0
Chào cả nhà GPE!
Em có vấn đề mà sửa đi sửa lại hoài nó không chạy đúng theo ý mình được.
Em muốn khi thoát File excel thì hiện Form gồm 2 nút Có và Không
- Nếu chọn Có:
+ Trường hợp trên máy tính chỉ mở 1 file này thì Lưu và Thoát luôn ( Code như hiện tại do em viết thì ok rồi )
+ Trường hợp trên máy tính mở file này và các file khác thì cũng chi Lưu và Thoát File này thôi, còn các file khác vẫn bình thường ( Code như hiện tại do em viết thì nó bắt Lưu và Thoát tất cả các File luôn). Em chỉ muốn Lưu và Thoát file em dùng Code thôi, còn các File khác kệ nó. Nhờ các Bác sửa giúp em.

...
Bạn thử xem code này được chưa nhé :
 

File đính kèm

  • CodeThoatExcel_Fix01.xls
    79 KB · Đọc: 23
Upvote 0
Em test file trên Excel 2007 thì chạy đúng như yêu cầu, của anh là 2003 thì em không rõ lắm, nhưng về mặt logic thì nó đúng. Anh có thể thử thay
Mã:
Application.Workbooks.Count = 1
thành
Mã:
Application.Workbooks.Count = 0

anh đã sữa 0,1,2,3,4...N cũng không được em ak
 
Upvote 0
Vậy bạn thử file này xem sao nhé :
Không đúng đâu bạn ơi, cho dù có làm 100 lần vẫn bị phán một câu "Bài của bạn sai 50%" các bạn đang bị chủ thớt tào lau đó. Thật ra ở #9 đã làm được nhưng có lẻ chủ thớt không thèm tải file về và test thử bao giờ (trong #9 mình không hề dùng lệnh Application.Quit, và cũng không hề dùng bất kỳ lệnh nào để đóng file excel) và vẫn bị phán một câu nghe chán chết. Chạy cho nhanh chủ đè này đi các bạn ơi, có lẻ nên đưa chủ thớt này vào danh sách đen cho rồi.
 
Upvote 0
Không đúng đâu bạn ơi, cho dù có làm 100 lần vẫn bị phán một câu "Bài của bạn sai 50%" các bạn đang bị chủ thớt tào lau đó. Thật ra ở #9 đã làm được nhưng có lẻ chủ thớt không thèm tải file về và test thử bao giờ (trong #9 mình không hề dùng lệnh Application.Quit, và cũng không hề dùng bất kỳ lệnh nào để đóng file excel) và vẫn bị phán một câu nghe chán chết. Chạy cho nhanh chủ đè này đi các bạn ơi, có lẻ nên đưa chủ thớt này vào danh sách đen cho rồi.

Tại bạn quên xem kỹ từ đầu. Chủ thớt có nói loại yêu cầu này cho người già sử dụng, nó phải đáp ứng tất cả "những trường hợp chọc tay bấm này bấm nọ" của người già.

Thật ra, tất cả những vấn đề của chủ thớt chỉ có thể giải quyết bằng một câu "máy dùng để làm việc, block tất cả các phần mềm khác". Xong.
Nếu còn dùng xem du tuýp thì vấn đề còn dài dài.
 
Upvote 0
Không đúng đâu bạn ơi, cho dù có làm 100 lần vẫn bị phán một câu "Bài của bạn sai 50%" các bạn đang bị chủ thớt tào lau đó. Thật ra ở #9 đã làm được nhưng có lẻ chủ thớt không thèm tải file về và test thử bao giờ (trong #9 mình không hề dùng lệnh Application.Quit, và cũng không hề dùng bất kỳ lệnh nào để đóng file excel) và vẫn bị phán một câu nghe chán chết. Chạy cho nhanh chủ đè này đi các bạn ơi, có lẻ nên đưa chủ thớt này vào danh sách đen cho rồi.
Anh làm sai thì em test sai thì nói sai, chứ chẳng lẽ anh làm sai em nói đúng hay sao.bÂy giờ anh nói bài số 9 đúng đúng không. bây giờ em sẽ test gửi Video cho anh. Anh cho em xin cai Gmail
 
Upvote 0
Anh làm sai thì em test sai thì nói sai, ..........

Bạn không nên dùng từ sai (làm mất lòng người giúp), nên dùng từ tế nhị như thế này "Em Test thử nhưng chưa đáp ứng được yêu cầu".

Tôi giúp 1 lần nếu không đúng thì cũng chạy luôn (vì đã có nhiều thành viên giúp rồi mà không đúng ý):

- Khi nhấn nút X trên sheet (Close), Form sẽ hiện lên và nhấn nút có để lưu, nhấn nút không thì không lưu.
 

File đính kèm

  • LUU VA THOAT EXCEL.rar
    18.5 KB · Đọc: 17
Upvote 0
Bạn không nên dùng từ sai (làm mất lòng người giúp), nên dùng từ tế nhị như thế này "Em Test thử nhưng chưa đáp ứng được yêu cầu".

Tôi giúp 1 lần nếu không đúng thì cũng chạy luôn (vì đã có nhiều thành viên giúp rồi mà không đúng ý):

- Khi nhấn nút X trên sheet (Close), Form sẽ hiện lên và nhấn nút có để lưu, nhấn nút không thì không lưu.
Theo em hiểu thì yêu cầu của tác giả thế này:
- Mỗi khi bấm nút X đóng file excel thi UserForm sẽ hiện ra
- Trên form có 2 nút '''Không'. Lúc này sẽ có 2 trường hợp xảy ra:
1> Bấm nút 'Không' sẽ đóng form và không làm gì cả
2> Bấm nút 'Có' sẽ có 2 thêm trường hợp con xảy ra:
a) Nếu máy tính chỉ mở duy nhất file này ---> Lưu file rồi thoát luôn Excel (Application.Quit)
b) Nếu máy tính có nhiều file đang mở ---> Lưu và đóng duy nhất file này, còn các file khác để nguyên​
----------------------------------------
Vậy nên: File của anh vẫn chưa đúng 100% yêu cầu của tác giả.
Thật ra loại yêu cầu này đã có trên diễn đàn từ lâu, chẳng hạn link dưới đây là chủ đề gần tương tự:
http://www.giaiphapexcel.com/dienda...g-nút-x-góc-phải-màn-hình.122856/#post-769236
(tuy có vài chỗ hơi khác nhưng vẫn có thể áp dụng được)
 
Upvote 0
...
Thật ra loại yêu cầu này đã có trên diễn đàn từ lâu, chẳng hạn link dưới đây là chủ đề gần tương tự:
http://www.giaiphapexcel.com/diendan/threads/không-cho-thoát-excel-bằng-nút-x-góc-phải-màn-hình.122856/#post-769236
(tuy có vài chỗ hơi khác nhưng vẫn có thể áp dụng được)

Cái này chỉ dùng được cho các bạn khác có vấn đề tương tự. Riêng chủ thớt này thì khó chấp nhận phương án b.
 
Upvote 0
Cái này chỉ dùng được cho các bạn khác có vấn đề tương tự. Riêng chủ thớt này thì khó chấp nhận phương án b.
Ý mình không phải là phương án b, c, d gì cả... Mình muốn nói với code trong link ở trên, có thể "chế biến" lại vẫn đúng ý như thường (cái kia dùng MsgBox Unicode, này này dùng Form)
 
Upvote 0
Upvote 0
Theo em hiểu thì yêu cầu của tác giả thế này:
- Mỗi khi bấm nút X đóng file excel thi UserForm sẽ hiện ra
- Trên form có 2 nút '''Không'. Lúc này sẽ có 2 trường hợp xảy ra:
1> Bấm nút 'Không' sẽ đóng form và không làm gì cả
2> Bấm nút 'Có' sẽ có 2 thêm trường hợp con xảy ra:
a) Nếu máy tính chỉ mở duy nhất file này ---> Lưu file rồi thoát luôn Excel (Application.Quit)
b) Nếu máy tính có nhiều file đang mở ---> Lưu và đóng duy nhất file này, còn các file khác để nguyên​
----------------------------------------
Vậy nên: File của anh vẫn chưa đúng 100% yêu cầu của tác giả.
Thật ra loại yêu cầu này đã có trên diễn đàn từ lâu, chẳng hạn link dưới đây là chủ đề gần tương tự:
http://www.giaiphapexcel.com/diendan/threads/không-cho-thoát-excel-bằng-nút-x-góc-phải-màn-hình.122856/#post-769236
(tuy có vài chỗ hơi khác nhưng vẫn có thể áp dụng được)

Cảm ơn anh Ndu. em thấy anh Ndu đọc vấn đề câu hỏi của người Post rất chi tiết và đúng chính xác ý của em ( Ak còn khi người dúng bấm nào nút X của Form thì tương tự như nút KHÔNG ). Em đã xem link anh gửi em sửa hoài không được. mong anh giúp em. Em xin chân thành cảm ơn

upload_2017-5-9_13-44-39.png
 
Upvote 0
Bạn không nên dùng từ sai (làm mất lòng người giúp), nên dùng từ tế nhị như thế này "Em Test thử nhưng chưa đáp ứng được yêu cầu".

Tôi giúp 1 lần nếu không đúng thì cũng chạy luôn (vì đã có nhiều thành viên giúp rồi mà không đúng ý):

- Khi nhấn nút X trên sheet (Close), Form sẽ hiện lên và nhấn nút có để lưu, nhấn nút không thì không lưu.
Báo cáo đã test file của anh. Trước hết xin chân thành cảm ơn đã giúp. File của anh em test vẫn chưa đúng yêu cầu. Nghĩa là nhấn nút Không là không lưu không thoát gì cả, chỉ tắt cái Form đó. Anh nên đọc kỷ yêu cầu của người Post để không phải chỉnh tới chỉnh luôi mất thời gian, rồi làm sai thì e nói sai rồi mất lòng nhau. Đấy anh xem anh Ndu anh hiểu vấn đề của em rồi đấy
 
Upvote 0
Báo cáo đã test file của anh. Trước hết xin chân thành cảm ơn đã giúp. File của anh em test vẫn chưa đúng yêu cầu. Nghĩa là nhấn nút Không là không lưu không thoát gì cả, chỉ tắt cái Form đó. Anh nên đọc kỷ yêu cầu của người Post để không phải chỉnh tới chỉnh luôi mất thời gian, rồi làm sai thì e nói sai rồi mất lòng nhau. Đấy anh xem anh Ndu anh hiểu vấn đề của em rồi đấy
Vậy bạn nên Test kỹ rồi hãy nêu lên vấn đề, trước khi tôi đưa File lên thì đã kiểm tra chính xác như tôi nêu nội dung ở bài 29, vậy bạn chờ các thành viên Test thử xem khi nhấn nút không nó có đóng Form và không có lưu hay không?

Bài 29 tôi không đã kích, tôi chỉ nêu thế này "Bạn không nên dùng từ sai (làm mất lòng người giúp)", đó chỉ là lời góp ý để các thành viên hiểu mà thông cãm và giúp đỡ lẫn nhau.

Nêu bạn không thích thì tôi chẳng bao giờ góp ý cho bạn nữa, vậy đi cho khỏi mếch lòng nhau.
 
Upvote 0
Bài 29 tôi không cho dùng nút X để đóng Form, mà bắt buộc phải nhấn nút (chắc bạn nói không đóng Form được là ngay chỗ này).

Tại bài 34 bạn có nêu sử dụng nút X trên Form, thì File bài 29 bạn bỏ đoạn code này đi thì đóng Form được.
Mã:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then
        Cancel = True
        MsgBox "VUI LONG NHÁN NÚT CÓ DE LUU", vbExclamation, "               THÔNG BÁO"
    End If
End Sub
 
Upvote 0

File đính kèm

  • CodeThoatExcel_Fix03.xls
    80.5 KB · Đọc: 23
Upvote 0
Bài 29 tôi không cho dùng nút X để đóng Form, mà bắt buộc phải nhấn nút (chắc bạn nói không đóng Form được là ngay chỗ này).

Tại bài 34 bạn có nêu sử dụng nút X trên Form, thì File bài 29 bạn bỏ đoạn code này đi thì đóng Form được.
Mã:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then
        Cancel = True
        MsgBox "VUI LONG NHÁN NÚT CÓ DE LUU", vbExclamation, "               THÔNG BÁO"
    End If
End Sub

dạ em cảm ơn anh. Em đã nói rõ Nhấn Có thì Lưu và Thoát, còn nhấn Không thì Hide cái form đó thôi không lưu không thoát (và nút X của Form thì giống như nút Không ). mà file 29 của anh nhấn Không thì nó Thoát luôn. Anh nên xem File 38 của anh Thaipv anh ấy làm đúng chính xác yêu cầu của em rồi
 
Upvote 0
Web KT
Back
Top Bottom