? workbook_beforePrint

  • Thread starter Thread starter tedaynui
  • Ngày gửi Ngày gửi
Liên hệ QC

tedaynui

(*_*)
Thành viên danh dự
Tham gia
12/8/06
Bài viết
1,875
Được thích
2,479
To Vumian
Mình không biết thế nào là tối ưu nhưng tạm thời bạn có thể chọn 1 trong 2 cách giải quyết sau :

1/ Giả sử chọn ô A1 của Sheet1 để lưu giá trị
PHP:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Sheet1.Range("A1") = "No Print" then Cancel = True
End Sub
Vậy khi Click vào Button in thì xoá giá trị ở ô A1 đi và sau khi in xong thì gán lại giá trị cho ô A1 này Là "No Print".

2/ Bạn thay đổi Code trong Workbook_BeforePrint (Cancle = True thành Cancle = False) trước khi in. Sau khi in xong thì trả về True
PHP:
Sub ReplaceCode()
Dim MyCodeMod
    Set MyCodeMod = ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
    MyCodeMod.Replaceline 2, "Cancel = False"
    ActiveWindow.SelectedSheets.PrintOut
    MyCodeMod.Replaceline 2, "Cancel = True"
End Sub
Lưu ý : chỉnh giá trị Trust access to Visual Basic Project về giá trị True (Trong Security Trusted Publishers)

TDN
 
Vumian đã có đáp án, he he :
PHP:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Cancel = Not (PrintOK)
End Sub
PHP:
Public PrintOK As Boolean

Sub TogglePrint()
PrintOK = Not (PrintOK)
ActiveWindow.SelectedSheets.PrintOut
PrintOK = Not (PrintOK)
End Sub
TDN
 
Upvote 0
hichic, sao cái mục mình hỏi lại nhảy xuống tuốt dưới vậy nè, ặc
 
Upvote 0
Pó tay luôn, bài viết hôm nay sao bị đảo lộn tùm lum.
 
Upvote 0
hi,
Cho mình hỏi, giả sử
Mã:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
cancel = true
End Sub
thì workbook này bị disable chức năng in, vậy mình làm sao khi nhấn 1 command button thì chức năng này enable lại
Cám ơn nhiều
 
Upvote 0
tedaynui đã viết:
To Vumian
Mình không biết thế nào là tối ưu nhưng tạm thời bạn có thể chọn 1 trong 2 cách giải quyết sau :

1/ Giả sử chọn ô A1 của Sheet1 để lưu giá trị
PHP:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Sheet1.Range("A1") = "No Print" then Cancel = True
End Sub
Vậy khi Click vào Button in thì xoá giá trị ở ô A1 đi và sau khi in xong thì gán lại giá trị cho ô A1 này Là "No Print".

Sao bác không gán luôn cho Command Button mà lại gán cho A1 ?? Như vậy dễ kiểm soát hơn nhiều và lại đẹp hơn.
Dòng trên cho gọn lại :
PHP:
Cancel = (Sheet1.Range("A1") = "No Print")
Thân!
 
Upvote 0
Mr Okebab đã viết:
Sao bác không gán luôn cho Command Button mà lại gán cho A1 ?? Như vậy dễ kiểm soát hơn nhiều và lại đẹp hơn.
Dòng trên cho gọn lại :
PHP:
Cancel = (Sheet1.Range("A1") = "No Print")
Thân!
Thì ở bài #2 gán trực tiếp cho Command Button rồi đó, hi hi

Thân
 
Upvote 0
hi anh TDN,anh Bắp,

Vậy làm cho phép PrintPreview mà mà không thực hiện code bên trong workbook_beforeprint() nhỉ ?

Cám ơn nhiều
 
Upvote 0
Web KT

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

Back
Top Bottom