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
Bạn có chắc là yêu cầu chỉ vậy thôi không? Hay trả lời xong lại phát sinh cái khác, vã lại bạn có chấp nhạn phương án b hay không? Hay chỉ nhất định phải là phương án a.
 
Upvote 0
dạ chắc rồi anh
 
Upvote 0
Bạn có chắc là yêu cầu chỉ vậy thôi không? Hay trả lời xong lại phát sinh cái khác, vã lại bạn có chấp nhạn phương án b hay không? Hay chỉ nhất định phải là phương án a.

Dạ đúng rồi anh chắc chắn rồi
 
Upvote 0
Tôi lại có một thắc mắc nửa. Tại sao phải sử dụng form chỉ có 2 nút mà không sử dụng msgbox cho nó gọn (ý tôi là chọn phương án b). Vã lại thêm một thắc mắc nửa là tại sao bạn lại làm cái chuyện tào lao vậy? Trong khi thoát excel là nó đã hỏi chúng ta save hay không trước khi thoát rồi. Không lẻ bạn chê anh bill dở hơn bạn à?
 
Upvote 0
Tôi lại có một thắc mắc nửa. Tại sao phải sử dụng form chỉ có 2 nút mà không sử dụng msgbox cho nó gọn (ý tôi là chọn phương án b). Vã lại thêm một thắc mắc nửa là tại sao bạn lại làm cái chuyện tào lao vậy? Trong khi thoát excel là nó đã hỏi chúng ta save hay không trước khi thoát rồi. Không lẻ bạn chê anh bill dở hơn bạn à?

OK dùng MSbox cũng được nhưng chữ nghĩa phải có dấu, có màu, chữ to, nút bấm to. Mà tốt hơn là dùng Form vì chử nó mới Bự Lớn rõ ràng mới được anh ak. Chuyện tào lao là sao anh. em làm để cho người già sử dụng nên cần phải có tiếng việt RÕ RÀng anh nhé. không có tào lao đâu anh. cái mặc định của Excel là khi thoát nó hiện 3 nút YES NO CANCEL, nếu người ta chọn No thì nó không lưu, vì file của em khi Thoát em muốn 1 là Lưu 2 là không làm gì hết (ý của em khi thoát luôn luôn Lưu đấy anh ). Mong anh hiểu vấn đề giúp em. Em xin chân thành cảm ơn
 
Upvote 0
Vậy sử dụng thử đoạn code này xem.
Mã:
'Thisworkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not ThisWorkbook.Saved Then UserForm1.Show
End Sub

'Form
Private Sub CommandButton1_Click() ' Nút có
Unload Me
ThisWorkbook.Save
Application.Quit
End Sub
Private Sub CommandButton2_Click() ' Nút Không
Unload Me
ThisWorkbook.Saved = True
Application.Quit
End Sub
 
Upvote 0
Vậy sử dụng thử đoạn code này xem.
Mã:
'Thisworkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not ThisWorkbook.Saved Then UserForm1.Show
End Sub

'Form
Private Sub CommandButton1_Click() ' Nút có
Unload Me
ThisWorkbook.Save
Application.Quit
End Sub
Private Sub CommandButton2_Click() ' Nút Không
Unload Me
ThisWorkbook.Saved = True
Application.Quit
End Sub

Em đã test và Code anh chạy sai hầu như 50%. em xin nói lại vấn đề
- Khi người dùng thoát Excel thì hiện ra 1 Form gồm 2 nút CÓ và KHÔNG . nếu nhấn nút KHÔng thì không làm gì cả ( nghĩa là tắt cái Form đó là xong không có lưu hay thoát gì hết giống như Hide cái form đó là xong )
- Khi người dùng nhấn nút CÓ thì sẽ có 2 trường hợp:
+ Trường hợp 1: Nếu trên máy tính chỉ mở 1 file này thôi thì Lưu và Thoát excel luôn
+ Trường hợp 2: Nếu trên máy tính mở file này và mở nhiều file khác thì cũng chỉ Lưu và Thoát file này thôi, còn các File khác kệ nó không ảnh hưởng gì hết

Code của anh sai ở chổ ( Khi thoát nhấn Nút CÓ thì nếu em có mở vài file khác thì nó bắt 1 là Lưu lại hết 2 là không lưu lại hết tất cả các file đang mở luôn , Khi bấm nút KHông thì lại thoát Excel ( chỉ cần Hide cái form đó là được, không cần Lưu thoát gì cả , ý là nhiều khi người ta bấm lở tay nút X để thoát nhưng người ta suy nghĩ lại ak không thoát nữa chọn Không để làm việc tiếp )
 
Upvote 0
Vậy bạn xem lại đúng ý bạn chưa vậy.
 

File đính kèm

  • GIup code Thoat excel.xls
    45 KB · Đọc: 19
Upvote 0
Bạn thử xem ok chưa.
 

File đính kèm

  • GIup code Thoat excel.xls
    41 KB · Đọc: 21
Upvote 0
Vậy bạn xem lại đúng ý bạn chưa vậy.
Cảm ơn anh đã giúp. Nhưng code anh vẫn chưa đúng trường hợp khi em mở nhiều File cùng 1 lúc em nhấn Có thì nó bắt Lưu và thoát tất cả các File kia luôn . Mong anh sửa lại chỉ Lưu và thoát file dùng code này thôi, Còn các file kia giữ nguyên hiện trạng.
p/s: File cua anh em mất 5 giây để xem Code anh nhé
 
Upvote 0
Cảm ơn anh đã giúp. Nhưng code anh chư đúng trường hợp khi em mở nhiều File cùng 1 lúc em nhấn Có thì nó bắt Lưu và thoát tất cả các File kia luôn . Mong anh sửa lại chỉ Lưu và thoát file dùng code này thôi, Còn các file kia giữ nguyên hiện trạng
 
Upvote 0
Cảm ơn anh đã giúp. Nhưng code anh chư đúng trường hợp khi em mở nhiều File cùng 1 lúc em nhấn Có thì nó bắt Lưu và thoát tất cả các File kia luôn . Mong anh sửa lại chỉ Lưu và thoát file dùng code này thôi, Còn các file kia giữ nguyên hiện trạng
Người ta nữ tính như rứa mà bác lại gọi bằng anh ... :(
 
Upvote 0
Cái này em không biết gì anh ạ. Mà em thấy file của anh xênh gái kia đúng yêu cầu của anh rồi mà
Sai rồi em Chưa đúng yêu cầu của anh. yêu cầu của anh làm hoi bị khó đó em. tại anh phải Test tất cả các trường hợp ok mới ok thôi em ak. nên các Chú giúp mình phải thật kỹ càng nhé
 
Upvote 0
Cảm ơn anh đã giúp. Nhưng code anh chư đúng trường hợp khi em mở nhiều File cùng 1 lúc em nhấn Có thì nó bắt Lưu và thoát tất cả các File kia luôn . Mong anh sửa lại chỉ Lưu và thoát file dùng code này thôi, Còn các file kia giữ nguyên hiện trạng
Uổi, code như vậy rất rõ ràng rồi anh.

Mã:
 If f.CloseFile = True Then
        ThisWorkbook.Save
        Cancel = False
        If Application.Workbooks.Count = 1 Then
            Application.Quit
        End If
    Else
        Cancel = True
    End If

Nếu người dùng chọn có thì save chính file đó, đóng file đó, nếu chỉ có một file duy nhất thì thoát Excel. Còn lại thì không làm gì. Không hiểu yêu cầu của anh nó khác như thế nào nữa.
 
Upvote 0
Uổi, code như vậy rất rõ ràng rồi anh.

Mã:
 If f.CloseFile = True Then
        ThisWorkbook.Save
        Cancel = False
        If Application.Workbooks.Count = 1 Then
            Application.Quit
        End If
    Else
        Cancel = True
    End If

Nếu người dùng chọn có thì save chính file đó, đóng file đó, nếu chỉ có một file duy nhất thì thoát Excel. Còn lại thì không làm gì. Không hiểu yêu cầu của anh nó khác như thế nào nữa.

trời ơi là trời anh nói vậy mà em không hiểu hay sao. Code của em chỉ đúng khi em mở 1 file lên chọn Có không đều OK, nhưng khi anh mở thêm 1 file khác lên thì anh muốn chỉ lưu và thoát file dùng code thôi còn mấy file khác vẫn giữ nguyên ( nghỉa là anh bấm Nút Co thì nó lưu và thoat chỉ file đó thôi còn mấy file kia vẫn giữ nguyên ( hiện tại code của em khi chọn CO thi nó hiện thông báo có 3 lựa chọn YES NO CANCEL hiểu chưa trời quơi)). Sao em không thử nghiệm trước nhĩ. để anh hỏi lại 2 3 lần. thiệt tình. không thì anh chứng Minh luôn nhé

Khi anh mở 2 file
upload_2017-5-7_14-4-19.png

Khi anh nhấn nút X để thoát file dùng code

upload_2017-5-7_14-4-43.png
kết quả đây nek. Nó không lưu và thoát file dùng code mà nó bắt thoát hết mấy file khác đang mở luôn.
upload_2017-5-7_14-5-40.png
 
Upvote 0
Sai rồi em Chưa đúng yêu cầu của anh. yêu cầu của anh làm hoi bị khó đó em. ....... nên các Chú giúp mình phải thật kỹ càng nhé
Cái này không phải bắt, bẽ, nhưng em dùng từ không chính xác, phải nêu vầy nè:
File em giúp chưa đáp ứng được cái anh cần, anh cần như thế này nè......(giải thích rỏ để người giúp hiểu được ý của mình).

Theo tôi thì dùng UserForm, vừa đẹp lại sử dụng Tiếng Việt dễ dàng.
 
Upvote 0
Cái này không phải bắt, bẽ, nhưng em dùng từ không chính xác, phải nêu vầy nè:
File em giúp chưa đáp ứng được cái anh cần, anh cần như thế này nè......(giải thích rỏ để người giúp hiểu được ý của mình).

Theo tôi thì dùng UserForm, vừa đẹp lại sử dụng Tiếng Việt dễ dàng.
dạ thì em đang làm bằng UserForm đó anh. Nhưng mà chỉ đúng khi trường hợp mở 1 file đó thôi. Còn khi mở nhiều file thì nó bắt thoát hết luôn
 
Upvote 0
Web KT
Back
Top Bottom