Hủy lệnh BeforePrint (1 người xem)

Liên hệ QC

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

MinhKhai

Giải pháp Ếc-xào
Tham gia
16/4/08
Bài viết
941
Được thích
574
Em áp dụng cách ngăn cản việc in 1 bảng tính thông qua lệnh Print bằng code sưu tập trong diễn đàn cụ thể là:
Mã:
[COLOR=#007700][FONT=monospace]Private [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Sub workbook_BeforePrint[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Cancel [/FONT][/COLOR][COLOR=#007700][FONT=monospace]As [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Boolean[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) 
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Select [/FONT][/COLOR][COLOR=#007700][FONT=monospace]Case [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]ActiveSheet[/FONT][/COLOR][COLOR=#007700][FONT=monospace].[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Name 
[/FONT][/COLOR][COLOR=#007700][FONT=monospace]Case [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Sheet1"[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Sheet2" 
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Cancel [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]True 
MsgBox [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Xin loi, Ban khong the in bang cach nay"[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]vbInformation 
End Select 
End Sub
[/FONT][/COLOR]
Mục tiêu chính của em là muốn người dùng in thông qua 1 nút lệnh CommandButton tự tạo (Nút lệnh này kiểm tra 1 vài thứ trước khi PrintOut).
Tuy nhiên em không biết cài mã VBA như thế nào để CommandButton tạm thời hủy lệnh không cho in như code trên.
Xin mọi người chỉ dẫn.
 
Em áp dụng cách ngăn cản việc in 1 bảng tính thông qua lệnh Print bằng code sưu tập trong diễn đàn cụ thể là:
Mã:
[COLOR=#007700][FONT=monospace]Private [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Sub workbook_BeforePrint[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Cancel [/FONT][/COLOR][COLOR=#007700][FONT=monospace]As [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Boolean[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) 
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Select [/FONT][/COLOR][COLOR=#007700][FONT=monospace]Case [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]ActiveSheet[/FONT][/COLOR][COLOR=#007700][FONT=monospace].[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Name 
[/FONT][/COLOR][COLOR=#007700][FONT=monospace]Case [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Sheet1"[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Sheet2" 
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Cancel [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]True 
MsgBox [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Xin loi, Ban khong the in bang cach nay"[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]vbInformation 
End Select 
End Sub
[/FONT][/COLOR]
Mục tiêu chính của em là muốn người dùng in thông qua 1 nút lệnh CommandButton tự tạo (Nút lệnh này kiểm tra 1 vài thứ trước khi PrintOut).
Tuy nhiên em không biết cài mã VBA như thế nào để CommandButton tạm thời hủy lệnh không cho in như code trên.
Xin mọi người chỉ dẫn.

Tức là sao đây? Bạn muốn "ép" người dùng phải bấm vào CommandButton mới được phép in, ngược lại, nếu người dùng bấm Ctrl + P để in bình thường thì bị cấm, đúng không?
Nếu đúng vậy thì cũng có nhiều cách. Ví dụ 1 cách:
- Tạo 1 biến Public bChk as Boolean
- Khi bấm vào CommandButton thì bChk được gán =TRUE đồng thì gọi lệnh Print
- Với code BeforPrint, kiểm tra nếu biến bChk = False thì cho Cancel = True (tức nghỉ in luôn)
Đại khái vậy! Bạn tự triển khai xem!
 
Upvote 0
PHP:
Em áp dụng cách ngăn cản việc in 1 bảng tính thông qua lệnh Print bằng code sưu tập trong diễn đàn cụ thể là:
Mã:
[COLOR=#007700][FONT=monospace]Private [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Sub workbook_BeforePrint[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Cancel [/FONT][/COLOR][COLOR=#007700][FONT=monospace]As [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Boolean[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) 
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Select [/FONT][/COLOR][COLOR=#007700][FONT=monospace]Case [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]ActiveSheet[/FONT][/COLOR][COLOR=#007700][FONT=monospace].[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Name 
[/FONT][/COLOR][COLOR=#007700][FONT=monospace]Case [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Sheet1"[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Sheet2" 
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Cancel [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]True 
MsgBox [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Xin loi, Ban khong the in bang cach nay"[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]vbInformation 
End Select 
End Sub
[/FONT][/COLOR]
Mục tiêu chính của em là muốn người dùng in thông qua 1 nút lệnh CommandButton tự tạo (Nút lệnh này kiểm tra 1 vài thứ trước khi PrintOut).
Tuy nhiên em không biết cài mã VBA như thế nào để CommandButton tạm thời hủy lệnh không cho in như code trên.
Xin mọi người chỉ dẫn.
cho cái này vào this Workbook no sẽ lam việc [GPECODE=vb]Public Sub workbook_BeforePrint(Cancel As Boolean)
Cancel = True
MsgBox "Xin loi, Ban khong the in bang cach nay", vbInformation

End Sub[/GPECODE]
 
Upvote 0
Nhân tiện topic này cho e hỏi.. E có tạo nút lệnh in với code đơn giản là
..
sheet.printout
...
thì ngay lập tức nó in luôn ngay sau khi bẩm..vậy e muốn nó xuất hiện cái cửa sổ chọn máy in,số trang in..(như là ctrl P) thì làm thế nào ạh?
e cảm ơn!!!
 
Upvote 0
Tức là sao đây? Bạn muốn "ép" người dùng phải bấm vào CommandButton mới được phép in, ngược lại, nếu người dùng bấm Ctrl + P để in bình thường thì bị cấm, đúng không?
Nếu đúng vậy thì cũng có nhiều cách. Ví dụ 1 cách:
- Tạo 1 biến Public bChk as Boolean
- Khi bấm vào CommandButton thì bChk được gán =TRUE đồng thì gọi lệnh Print
- Với code BeforPrint, kiểm tra nếu biến bChk = False thì cho Cancel = True (tức nghỉ in luôn)
Đại khái vậy! Bạn tự triển khai xem!

Cảm ơn bác. Bác hiểu đúng ý của em. Em đã triển khai theo ý tưởng của bác mà không thành công.

Bác đã hướng dẫn chi tiết như vậy mà em vẫn ko làm được. Mong các bác thông cảm làm mẫu giúp em!
https://dl.dropboxusercontent.com/s...AE3A9aKjSspAwUl9KPaS9CZ5PieFCrvnFBkQWW6DGfltA
 
Upvote 0

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

Back
Top Bottom