TVEXCEL02 Print : công cụ in cho Excel

Liên hệ QC

phamduylong

-
Thành viên đã mất
Tham gia
30/12/06
Bài viết
918
Được thích
2,368
Nghề nghiệp
Giáo viên
TVEXCEL02 Print là bảng mới của PrintSelect, hỗ trợ thêm một số chức năng in của Excel. Giúp người dùng quản lý in dễ dàng hơn.


TVEXCEL02Print.jpg




TVEXCEL02 Print có các chức năng :
- Thay đổi máy in.

- In tất cả các trang các workbook đang mở.
- In tất cả các trang trong workbook đang hoạt động.

- In trang chẳn, trang lẻ; in vùng chọn, in số trang tự chọn trong sheet đang hoạt động.
- Thay đổi thứ tự in. Riêng mục chọn In các trang, thứ tự in bắt buộc là Collate=True
- Cho phép thay đổi workbook, sheet đang hoạt động,vùng chọn in trên form.


TVEXCEL02 Print liệt kê số trang in của từng workbook, từng sheet. Giúp người dùng có thông tin để chọn lệnh in.
Kiểm tra tính hợp lệ của 2 mục chọn In vùng chọnIn các trang:
- In vùng chọn : chỉ cho nhập nếu địa chỉ nhập có thật.
- In các trang : chỉ cho nhập số trang cần in có thực và nhập đúng quy định.

Cập nhật TVEXCEL02 Print:
19/03/2009 :
TVEXCEL02 Print 19-03-2009.zip : chỉnh nút lệnh TVEXCEL02 trong form.

23/03/2009 :
TVEXCEL02 Print 22-03-2009.zip :
- khắc phục lỗi không khi thay đổi sheet trên form, trên màn hình không đổi.
- cho nhập số trực tiếp vào Số bảng copy. copynút lệnh TVEXCEL02 trong form.

02/04/2009 :
TVEXCEL02 Print 02-04-2009.zip :
- khắc phục lỗi khi workbook có sheet ẩn
 

File đính kèm

  • TVEXCEL02 Print.zip
    26.9 KB · Đọc: 1,491
  • TVEXCEL02 Print 19-03-2009.zip
    27 KB · Đọc: 1,709
  • TVEXCEL02 Print 23-03-2009.zip
    37.1 KB · Đọc: 1,409
  • TVEXCEL02 Print 02-04-2009.zip
    27.7 KB · Đọc: 4,590
Lần chỉnh sửa cuối:
Em vừa chạy đã gặp ngay lỗi này, các anh xem giùm.

attachment.php


attachment.php

 

File đính kèm

  • 1.jpg
    1.jpg
    28 KB · Đọc: 4,153
  • 2.jpg
    2.jpg
    71.2 KB · Đọc: 4,095
Bản cập nhật TVEXCEL02 Print

TVEXCEL02 Print mặc dù có kiểm tra nhưng vẫn còn lỗi do các bạn phát hiện. Khi có bản chỉnh lỗi mới, tôi sẽ thay thế tập tin đính kèm tại bài 1 để các bạn không tải nhầm các bản cũ.
Em vừa chạy đã gặp ngay lỗi này, các anh xem giùm.
ptlong04x1 tải về bản mới cập nhật xem còn lỗi không ?
 
Cảm ơn bác, đã in được nhưng lại có lỗi như sau, bác sửa luôn để add-in càng thêm hoàn thiện nhé.

attachment.php

Tiện thể em cũng có 1 góp ý thế này : nếu trên Form có thêm 1 mục để tuỳ chọn là in trên giấy khổ ngang hay khổ dọc nữa thì hay tuyệt, nếu không thì có thêm 1 nút để cho hiện Properties của máy in thì người dùng cũng có thể thiết lập khổ giấy ngang cho trang in.

attachment.php


Em là dân ngoại đạo nên chỉ biết góp ý thôi chứ không cách nào thực hiện được, có gì bác bỏ qua nha.
 

File đính kèm

  • 2.jpg
    2.jpg
    175.7 KB · Đọc: 4,095
  • 3.jpg
    3.jpg
    36.9 KB · Đọc: 4,059
Lần chỉnh sửa cuối:
Cảm ơn bác, đã in được nhưng lại có lỗi như sau, bác sửa luôn để add-in càng thêm hoàn thiện nhé.
Tiện thể em cũng có 1 góp ý thế này : nếu trên Form có thêm 1 mục để tuỳ chọn là in trên giấy khổ ngang hay khổ dọc nữa thì hay tuyệt, nếu không thì có thêm 1 nút để cho hiện Properties của máy in thì người dùng cũng có thể thiết lập khổ giấy ngang cho trang in.
Em là dân ngoại đạo nên chỉ biết góp ý thôi chứ không cách nào thực hiện được, có gì bác bỏ qua nha.
Đã chỉnh lỗi. Tập tin cập nhật TVEXCEL02 Print 19-03-2009.zip
Việc thêm 1 mục để tuỳ chọn là in trên giấy khổ ngang, dọc không khả thi vì:
- Excel đã có form Page Setup rất đầy đủ.
- Khi chỉnh lại Page Setup, nhất thiết phải vào Print Preview xem và căn chỉnh lại, nếu không bản in có nhiều lỗi như tràn lề, thiếu cột ... Nhất là in hàng loạt thì hậu quả không lường được.
 
Lần chỉnh sửa cuối:
Đã chỉnh lỗi. Tập tin cập nhật TVEXCEL02 Print 19-03-2009.zip
Việc thêm 1 mục để tuỳ chọn là in trên giấy khổ ngang, dọc không khả thi vì:
- Excel đã có form Page Setup rất đầy đủ.
- Khi chỉnh lại Page Setup, nhất thiết phải vào Print Preview xem và căn chỉnh lại, nếu không bản in có nhiều lỗi như tràn lề, thiếu cột ... Nhất là in hàng loạt thì hậu quả không lường được.

Cám ơn thầy Phạm Duy Long. Cái Addin kỳ này Pro quá.

Em có ý thế này không biết có hợp lý không

1/ Số bản copy mình có nên vừa cho nhấn và cho gõ trực tiếp vào không vì nếu ai in số lượng nhiều em ví dụ cỡ 100 lần nếu gõ được vào ô thì tiện quá.
2/ Mình có nên tạo nút xem trang in (Print Preview) vì nếu có chỉnh sữa cột hay kiểm tra lại thì chỉ cần nhấp vào nó thôi cho tiện.

nếu không hợp lý mong thầy bỏ qua -\\/.
 
Lần chỉnh sửa cuối:
Cập nhật TVEXCEL02 Print 22-03-2009.zip
- khắc phục lỗi không khi thay đổi sheet trên form, trên màn hình không đổi.
- cho nhập số trực tiếp vào Số bảng copy.
 
Thưa thầy Mình có nên thêm sự kiện BeforeUpdate cho số lần copy không ạh

Private Sub "Số lần Copy"_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If "Số lần Copy" = "" Then
"Số lần Copy" = 1
End If
End Sub

Cám ơn thầy Phạm Duy Long, bản cập nhật kỳ này very Good
 
Em có một vài ý tưởng với Addin TVEXCEL Print, anh Long xem thế nào.

+ Phần lựa chọn Workbook (file) để in, cho phép lựa chọn 1 hoặc nhiều file đang mở, ngầm định là file hiện thời.
+ Phần lựa chọn Sheet in cũng như trên, cho phép lựa chọn một hoặc nhiều hơn một sheet.

Để làm 2 chức năng trên, phần giao diện thiết kế có thể phân làm 2: bên trái là "Chọn Workbook(s)" bên phải là "Chọn Worksheet(s)" ứng với Workbook được chọn. Quá trình select các item trong Listbox cần phải ghi nhớ vào một database để thực hiện lệnh in sau đó.

+ Tùy chọn "In tất cả các sheet" nên nằm trong khu vực "Chọn sheet"
+ Chức năng "In vùng chọn" sao anh không dùng control có sẵn trong Useform "RefEdit" ?

Chúc Addin của anh Long ngày càng hoàn thiện.
 
Lần chỉnh sửa cuối:
Em có một vài ý tưởng với Addin TVEXCEL Print, anh Long xem thế nào.

+ Phần lựa chọn Workbook (file) để in, cho phép lựa chọn 1 hoặc nhiều file đang mở, ngầm định là file hiện thời.
+ Phần lựa chọn Sheet in cũng như trên, cho phép lựa chọn một hoặc nhiều hơn một sheet.

Để làm 2 chức năng trên, phần giao diện thiết kế có thể phân làm 2: bên trái là "Chọn Workbook(s)" bên phải là "Chọn Worksheet(s)" ứng với Workbook được chọn. Quá trình select các item trong Listbox cần phải ghi nhớ vào một database để thực hiện lệnh in sau đó.

+ Tùy chọn "In tất cả các sheet" nên nằm trong khu vực "Chọn sheet"
+ Chức năng "In vùng chọn" sao anh không dùng control có sẵn trong Useform "RefEdit" ?

Chúc Addin của anh Long ngày càng hoàn thiện.
Y tưởng của TuanVNUNI rất hay và thực tế. Sẽ cập nhật lại phần này.
 
Tôi làm 1 hóa đơn điện sinh hoạt trên trang giấy A5, nhưng khi in tôi muốn đặt chiều giấy ngang trên máy in như 1 tờ phiếu thu nằm ngang và kết quả in là một trang nằm ngang, nhưng không biết cách làm. Rất mong sự giúp đỡ của các thành viên.
 
Tôi làm 1 hóa đơn điện sinh hoạt trên trang giấy A5, nhưng khi in tôi muốn đặt chiều giấy ngang trên máy in như 1 tờ phiếu thu nằm ngang và kết quả in là một trang nằm ngang, nhưng không biết cách làm. Rất mong sự giúp đỡ của các thành viên.
Dù bạn có khai báo giấy A5 ngang, nhưng cho giấy vào khay vẫn là giấy dọc.
Bạn có thể khai báo giấy A4, cắt tờ A4 ra làm đôi thành A5 để in. Nhưng phải canh chỉnh dữ liệu sao cho chỉ nằm nữa phần trên giấy A4.
 
Nên bổ sung:
1. Rows to repeat at top:
2. Print area
Ví dụ: in trong 1 sheet có 2 vùng in (print area) trong mỗi vùng in thì có 1 “Row repeat at top”. ấn print 1 cái tự động in tất cả.
 
Cái TVExcel02Print của bác thì tốt quá rồi, nhưng tôi có đề nghị nếu thêm phần định dạng trang in nữa thì trên cả tuyệt vời luôn. Thí dụ trang lẻ thì left 10 và right 2, trang chẵn thì left 2 và right 10, và cả top, bottom nữa. Tôi nghĩ đây là vấn đề mà rất nhiều người quan tâm.
 
Cái TVExcel02Print của bác thì tốt quá rồi, nhưng tôi có đề nghị nếu thêm phần định dạng trang in nữa thì trên cả tuyệt vời luôn. Thí dụ trang lẻ thì left 10 và right 2, trang chẵn thì left 2 và right 10, và cả top, bottom nữa. Tôi nghĩ đây là vấn đề mà rất nhiều người quan tâm.
Cám ơn góp ý của nnt32002 và các bạn.
Việc khai báo page setup bằng VBA đơn giản, nhưng tôi không đưa vào TVExcel02Print vì bạn sẽ không kiểm soát được trang in của bạn, chỉ cần một thay đổi nhỏ lề giấy, có thể số trang in sẽ đổi từ từ n trang thành nx2 trang, một số trang in chỉ có 1 cột vì có một cột bị đẩy qua trang khác mà mình không thấy được khi thay đổi.
Cách tốt nhất vẫn là dùng Print Preview để canh chỉnh là hợp lý nhất.
 
Lần chỉnh sửa cuối:
Nếu như vậy thì vẫn dùng thủ công sao? Trong sheet tôi sử dụng dữ liệu rất nhiều (có đến 9,10 trang) phải in hàng ngày và đóng lại thành sổ, nếu in 1 mặt thì phí quá. Có cách nào giải quyết vấn đề này không, xin cảm ơn!
 
Nếu vậy thì vẫn phải làm thủ công nũa sao? Nếu có cách nào khác xin chỉ giáo dùm, xin cảm ơn!
 
Cái TVExcel02Print của bác thì tốt quá rồi, nhưng tôi có đề nghị nếu thêm phần định dạng trang in nữa thì trên cả tuyệt vời luôn. Thí dụ trang lẻ thì left 10 và right 2, trang chẵn thì left 2 và right 10, và cả top, bottom nữa. Tôi nghĩ đây là vấn đề mà rất nhiều người quan tâm.
Nếu như vậy thì vẫn dùng thủ công sao? Trong sheet tôi sử dụng dữ liệu rất nhiều (có đến 9,10 trang) phải in hàng ngày và đóng lại thành sổ, nếu in 1 mặt thì phí quá. Có cách nào giải quyết vấn đề này không, xin cảm ơn!
Kết hợp 2 ý này tôi mới hiểu mục đích của bạn. Bạn muốn đảo lề trái phải giống như chọn Mirror magrins khi in trong Word ?
Có thể thêm mục tùy chọn [Đảo lề trái, phải], [Đảo lề trên, dưới] vào TVExcel02Print. Khi chọn các mục đó, TVExcel02Print sẽ lấy left, fight, top, bottom của sheet khi in trang lẻ và đảo ngược khi in trang chẳn. In xong sẽ trả giá trị cũ. Ý tượng này khả thi.
 
Web KT
Back
Top Bottom