Chia sẻ tiện ích "In hàng loạt với dữ liệu có sẵn" trên Excel

Liên hệ QC

dhn46

Hướng tới tương lai
Tham gia
1/3/11
Bài viết
3,252
Được thích
3,868
Qua quá trình làm việc dhn46 nhận thấy nhu cầu in với số lượng lớn Form mẫu với Data có sẵn là rất nhiều, ví dụ như: Hợp đồng, tờ khai bảo hiểm, phiếu xuất nhập, nhãn mác thùng hàng, thẻ nhân viên...
Các biểu mẫu này có đặc điểm chung là: in trên Form sẵn có với dữ liệu lần lượt lấy từ nguồn tương tự Mail Merg, hoặc in các biểu mẫu có thêm hình ảnh. Việc tiếp cận và tạo các biểu mẫu này với các bạn không biết lập trình là 1 điều khó khăn, do đó dhn46 có viết 1 tiện ích nhỏ để hỗ trợ cho những bạn cần mà chưa có giải pháp.
* Tính năng:
- Tự động in các biểu mẫu với số liệu nhảy tuần tự theo bảng dữ liệu gốc
- Tự động chèn ảnh vào Form mẫu
- Tạo các biểu mẫu tùy ý, linh động trong việc chèn dữ liệu vào Form
* Hướng dẫn sử dụng:
Có 2 phiên bản in hàng loạt
- Loại 1: In Form không lặp lại - dùng để in 1 Form duy nhất trên 1 trang, chỉ nhảy dữ liệu và hình ảnh, ví dụ như hợp đồng, BHXH, phiếu xuất nhập...
- Loại 2: In Form lặp lại – dùng để in mà Form tự nhân bản trên trang in với số cột tùy chọn, dùng để in các Form mẫu kích cỡ nhỏ như thẻ nhân viên, nhãn thùng hàng...
Để sử dụng 2 loại các bạn cần thực hiện các bước sau:
*Chung:
- Cả 2 File đều có: Sheet Khai báo và Sheet Data.
- Các bạn khai báo đầy đủ các trường trong sheet Khai báo tương ứng với sheet Data
+ Sheet Name: tên sheet chứa Form mẫu (ở ví dụ là: Form – ô C1)
+ Nội dung: Các trường cần chèn vào Form mẫu
+ Cột Sheet Data: Cột dữ liệu tương ứng với Nội dung tại Sheet Data. (Ví dụ: A, B, ..
+ Cột Vị trí hiển thị: Vị trí đặt dữ liệu tại Sheet Form (Các vị trí này sẽ nhảy tuần tự dữ liệu theo mỗi bản in)
+ Link ảnh: Copy đường dẫn thư mục chứa ảnh vào ô F1, hoặc nhấn nút lệnh để tìm đường dẫn
+ Khung ảnh: Tên các trường ảnh muốn chèn
+ Tên khung ảnh: Đây là tên của Shape các bạn vẽ trên Sheet Form. Các hình ảnh sẽ được Fill trong shape nên cần phải vẽ shape khi muốn chèn trên Form. Nếu không cần hình ảnh nhảy trên Form thì các bạn không khai báo trường này, để trống.
+ Cột tên ảnh: Là cột chứa tên ảnh không bao gồm phần mở rộng
Ở đây dhn46 lấy tên ảnh theo cấu trúc [tên ảnh = tên ảnh trong cột tên ảnh]
Theo ví dụ trong File thì tên ảnh lấy theo Code. bạn có Code VN0001 thì sẽ phải có ảnh VN0001.jpg hoặc VN0001.bmp.
*Riêng:
- Đối với bản in hàng loạt có lặp lại: thì các bạn cần thiết kế Form mẫu, khai báo vùng chứa Form mẫu và số cột Form trong trang in.
*--------------------------------------
Khi hoàn thành bước khai báo có thể tiến hành in.
Các bạn xem Video để tham khảo cách sử dụng

[video=youtube;4V8qhBhw4yo]http://www.youtube.com/watch?v=4V8qhBhw4yo&feature=youtu.be[/video]

(Do dhn46 mới "tập tành" viết Code nên Code còn lủng củng và sẽ có nhiều hạn chế, mong các bạn sử dụng, góp ý để hoàn thiện hơn sản phẩm.)

Trân trọng!
*----------------------------------
Update: 14/08/2014 - gói gọn các cải tiến trong 1 phiên bản
- Cho phép thêm dữ liệu trên Textbox
- In thẻ trên sheet KQ bắt đầu tại dòng 10 để 9 dòng trước có thể điền tiêu đề.
- Chọn in thẻ theo số thứ tự qua Form.
- In, xem khi Filter
*-----------------------------------
Update: 14/08/2014
- Sửa in hàng loạt không lặp lại - Sửa lỗi code giớ hạn 18 field
 

File đính kèm

  • In Form hàng loạt 04.2016.rar
    305.1 KB · Đọc: 3,201
Lần chỉnh sửa cuối:
Em dân ngoại đạo VBA, xem clip của bác cả buổi em vẫn không biết phải bắt đầu như thế nào ạ?
Chào bạn,

Việc bạn bắt đầu gồm cacs bước sau:

1/ Tải tiện ích về, chọn loại bạn muốn (lặp lại, không lặp lại)
2/ Bạn thiết kế Form trên sheet From, Form này là Form chuẩn với nội dung chuẩn, kích thước chuẩn
3/ Bạn đưa dữ liệu của bạn và sheet Data, bạn thiết kế theo ý mình, nội dung các trường (cột) trong sheet Data bạn có thể thay đổi phù hợp
4/ Khai báo: tại sheet Khai báo bạn khai báo, với mỗi cột trên sheet Data sẽ tương ứng với 1 vị trí trên sheet Form bạn thiết kế...
5/ Bạn chạy Code tại sheet Data

Đó là các bước bạn cần làm.
 
Upvote 0
Chào bạn,

Việc bạn bắt đầu gồm cacs bước sau:

1/ Tải tiện ích về, chọn loại bạn muốn (lặp lại, không lặp lại)
2/ Bạn thiết kế Form trên sheet From, Form này là Form chuẩn với nội dung chuẩn, kích thước chuẩn
3/ Bạn đưa dữ liệu của bạn và sheet Data, bạn thiết kế theo ý mình, nội dung các trường (cột) trong sheet Data bạn có thể thay đổi phù hợp
4/ Khai báo: tại sheet Khai báo bạn khai báo, với mỗi cột trên sheet Data sẽ tương ứng với 1 vị trí trên sheet Form bạn thiết kế...
5/ Bạn chạy Code tại sheet Data

Đó là các bước bạn cần làm.
Em đã làm theo hướng dẫn của bác kết quả em thu được là:
1. ở sheet KQ thì em không hiểu sao em xóa các dòng tứ 1-4 là lỗi, nên em không căn trang in đúng được
2. em muốn in lặp lại theo số lượng mong muôn như sheet data em khai báo thì em phải làm gì nữa ạ
 

File đính kèm

  • In Form co lap lai oanh.xls
    307 KB · Đọc: 16
Upvote 0
Em đã làm theo hướng dẫn của bác kết quả em thu được là:
1. ở sheet KQ thì em không hiểu sao em xóa các dòng tứ 1-4 là lỗi, nên em không căn trang in đúng được
2. em muốn in lặp lại theo số lượng mong muôn như sheet data em khai báo thì em phải làm gì nữa ạ
Chào bạn,

Vậy là bạn đã ứng dụng được, đơn giản phải không bạn?
Tôi hướng dẫn 2 câu hỏi của bạn

1/ Thay vì việc bạn xóa thì bạn hãy ẩn (Hide) dòng 1-4 đi nhé.
2/ Tiện ích này không hỗ trợ nhân bản theo số lượng. Để khắc phục bạn cho số lượng dòng dữ liệu tại sheet Data bằng số lượng thẻ cần in/1 mã hàng để in song hoàn toàn có thể xử lý - đơn giản nhất là băngf công thức, bạn xem file để biết thêm chi tiết.
 

File đính kèm

  • In Form co lap lai oanh.xls
    145 KB · Đọc: 27
Upvote 0
Chào bạn,

Vậy là bạn đã ứng dụng được, đơn giản phải không bạn?
Tôi hướng dẫn 2 câu hỏi của bạn

1/ Thay vì việc bạn xóa thì bạn hãy ẩn (Hide) dòng 1-4 đi nhé.
2/ Tiện ích này không hỗ trợ nhân bản theo số lượng. Để khắc phục bạn cho số lượng dòng dữ liệu tại sheet Data bằng số lượng thẻ cần in/1 mã hàng để in song hoàn toàn có thể xử lý - đơn giản nhất là băngf công thức, bạn xem file để biết thêm chi tiết.[/QUOTE
Cảm ơn bác, em làm được rồi
nhưng dữ liệu của em nhiều dòng quá nên nó chạy lâu 30 phút không xong.
in theo STT báo lỗi
 

File đính kèm

  • In Form co lap lai 1.xls
    893 KB · Đọc: 14
  • Screenshot 2017-05-29 17.59.18.png
    Screenshot 2017-05-29 17.59.18.png
    146.1 KB · Đọc: 13
Upvote 0

File đính kèm

  • In Form the CĐ.xls
    1.6 MB · Đọc: 14
Upvote 0
Qua quá trình làm việc dhn46 nhận thấy nhu cầu in với số lượng lớn Form mẫu với Data có sẵn là rất nhiều, ví dụ như: Hợp đồng, tờ khai bảo hiểm, phiếu xuất nhập, nhãn mác thùng hàng, thẻ nhân viên...
Các biểu mẫu này có đặc điểm chung là: in trên Form sẵn có với dữ liệu lần lượt lấy từ nguồn tương tự Mail Merg, hoặc in các biểu mẫu có thêm hình ảnh. Việc tiếp cận và tạo các biểu mẫu này với các bạn không biết lập trình là 1 điều khó khăn, do đó dhn46 có viết 1 tiện ích nhỏ để hỗ trợ cho những bạn cần mà chưa có giải pháp.
* Tính năng:
- Tự động in các biểu mẫu với số liệu nhảy tuần tự theo bảng dữ liệu gốc
- Tự động chèn ảnh vào Form mẫu
- Tạo các biểu mẫu tùy ý, linh động trong việc chèn dữ liệu vào Form
* Hướng dẫn sử dụng:
Có 2 phiên bản in hàng loạt
- Loại 1: In Form không lặp lại - dùng để in 1 Form duy nhất trên 1 trang, chỉ nhảy dữ liệu và hình ảnh, ví dụ như hợp đồng, BHXH, phiếu xuất nhập...
- Loại 2: In Form lặp lại – dùng để in mà Form tự nhân bản trên trang in với số cột tùy chọn, dùng để in các Form mẫu kích cỡ nhỏ như thẻ nhân viên, nhãn thùng hàng...
Để sử dụng 2 loại các bạn cần thực hiện các bước sau:
*Chung:
- Cả 2 File đều có: Sheet Khai báo và Sheet Data.
- Các bạn khai báo đầy đủ các trường trong sheet Khai báo tương ứng với sheet Data
+ Sheet Name: tên sheet chứa Form mẫu (ở ví dụ là: Form – ô C1)
+ Nội dung: Các trường cần chèn vào Form mẫu
+ Cột Sheet Data: Cột dữ liệu tương ứng với Nội dung tại Sheet Data. (Ví dụ: A, B, ..
+ Cột Vị trí hiển thị: Vị trí đặt dữ liệu tại Sheet Form (Các vị trí này sẽ nhảy tuần tự dữ liệu theo mỗi bản in)
+ Link ảnh: Copy đường dẫn thư mục chứa ảnh vào ô F1, hoặc nhấn nút lệnh để tìm đường dẫn
+ Khung ảnh: Tên các trường ảnh muốn chèn
+ Tên khung ảnh: Đây là tên của Shape các bạn vẽ trên Sheet Form. Các hình ảnh sẽ được Fill trong shape nên cần phải vẽ shape khi muốn chèn trên Form. Nếu không cần hình ảnh nhảy trên Form thì các bạn không khai báo trường này, để trống.
+ Cột tên ảnh: Là cột chứa tên ảnh không bao gồm phần mở rộng
Ở đây dhn46 lấy tên ảnh theo cấu trúc [tên ảnh = tên ảnh trong cột tên ảnh]
Theo ví dụ trong File thì tên ảnh lấy theo Code. bạn có Code VN0001 thì sẽ phải có ảnh VN0001.jpg hoặc VN0001.bmp.
*Riêng:
- Đối với bản in hàng loạt có lặp lại: thì các bạn cần thiết kế Form mẫu, khai báo vùng chứa Form mẫu và số cột Form trong trang in.
*--------------------------------------
Khi hoàn thành bước khai báo có thể tiến hành in.
Các bạn xem Video để tham khảo cách sử dụng

[video=youtube;4V8qhBhw4yo]

(Do dhn46 mới "tập tành" viết Code nên Code còn lủng củng và sẽ có nhiều hạn chế, mong các bạn sử dụng, góp ý để hoàn thiện hơn sản phẩm.)

Trân trọng!
*----------------------------------
Update: 14/08/2014 - gói gọn các cải tiến trong 1 phiên bản
- Cho phép thêm dữ liệu trên Textbox
- In thẻ trên sheet KQ bắt đầu tại dòng 10 để 9 dòng trước có thể điền tiêu đề.
- Chọn in thẻ theo số thứ tự qua Form.
- In, xem khi Filter
*-----------------------------------
Update: 14/08/2014
- Sửa in hàng loạt không lặp lại - Sửa lỗi code giớ hạn 18 field
ad ơi tôi chỉnh sửa from khác theo nhu cầu công việc của tôi thì nó không hoạt động được
 
Upvote 0
Qua quá trình làm bviệc dhn46 nhận thấy nhu cầu in với số lượng lớn Form mẫu với Data có sẵn là rất nhiều, ví dụ như: Hợp đồng, tờ khai bảo hiểm, phiếu xuất nhập, nhãn mác thùng hàng, thẻ nhân viên...
Các biểu mẫu này có đặc điểm chung là: in trên Form sẵn có với dữ liệu lần lượt lấy từ nguồn tương tự Mail Merg, hoặc in các biểu mẫu có thêm hình ảnh. Việc tiếp cận và tạo các biểu mẫu này với các bạn không biết lập trình là 1 điều khó khăn, do đó dhn46 có viết 1 tiện ích nhỏ để hỗ trợ cho những bạn cần mà chưa có giải pháp.
* Tính năng:
- Tự động in các biểu mẫu với số liệu nhảy tuần tự theo bảng dữ liệu gốc
- Tự động chèn ảnh vào Form mẫu
- Tạo các biểu mẫu tùy ý, linh động trong việc chèn dữ liệu vào Form
* Hướng dẫn sử dụng:
Có 2 phiên bản in hàng loạt
- Loại 1: In Form không lặp lại - dùng để in 1 Form duy nhất trên 1 trang, chỉ nhảy dữ liệu và hình ảnh, ví dụ như hợp đồng, BHXH, phiếu xuất nhập...
- Loại 2: In Form lặp lại – dùng để in mà Form tự nhân bản trên trang in với số cột tùy chọn, dùng để in các Form mẫu kích cỡ nhỏ như thẻ nhân viên, nhãn thùng hàng...
Để sử dụng 2 loại các bạn cần thực hiện các bước sau:
*Chung:
- Cả 2 File đều có: Sheet Khai báo và Sheet Data.
- Các bạn khai báo đầy đủ các trường trong sheet Khai báo tương ứng với sheet Data
+ Sheet Name: tên sheet chứa Form mẫu (ở ví dụ là: Form – ô C1)
+ Nội dung: Các trường cần chèn vào Form mẫu
+ Cột Sheet Data: Cột dữ liệu tương ứng với Nội dung tại Sheet Data. (Ví dụ: A, B, ..
+ Cột Vị trí hiển thị: Vị trí đặt dữ liệu tại Sheet Form (Các vị trí này sẽ nhảy tuần tự dữ liệu theo mỗi bản in)
+ Link ảnh: Copy đường dẫn thư mục chứa ảnh vào ô F1, hoặc nhấn nút lệnh để tìm đường dẫn
+ Khung ảnh: Tên các trường ảnh muốn chèn
+ Tên khung ảnh: Đây là tên của Shape các bạn vẽ trên Sheet Form. Các hình ảnh sẽ được Fill trong shape nên cần phải vẽ shape khi muốn chèn trên Form. Nếu không cần hình ảnh nhảy trên Form thì các bạn không khai báo trường này, để trống.
+ Cột tên ảnh: Là cột chứa tên ảnh không bao gồm phần mở rộng
Ở đây dhn46 lấy tên ảnh theo cấu trúc [tên ảnh = tên ảnh trong cột tên ảnh]
Theo ví dụ trong File thì tên ảnh lấy theo Code. bạn có Code VN0001 thì sẽ phải có ảnh VN0001.jpg hoặc VN0001.bmp.
*Riêng:
- Đối với bản in hàng loạt có lặp lại: thì các bạn cần thiết kế Form mẫu, khai báo vùng chứa Form mẫu và số cột Form trong trang in.
*--------------------------------------
Khi hoàn thành bước khai báo có thể tiến hành in.
Các bạn xem Video để tham khảo cách sử dụng

[video=youtube;4V8qhBhw4yo]

(Do dhn46 mới "tập tành" viết Code nên Code còn lủng củng và sẽ có nhiều hạn chế, mong các bạn sử dụng, góp ý để hoàn thiện hơn sản phẩm.)

Trân trọng!
*----------------------------------
Update: 14/08/2014 - gói gọn các cải tiến trong 1 phiên bản
- Cho phép thêm dữ liệu trên Textbox
- In thẻ trên sheet KQ bắt đầu tại dòng 10 để 9 dòng trước có thể điền tiêu đề.
- Chọn in thẻ theo số thứ tự qua Form.
- In, xem khi Filter
*-----------------------------------
Update: 14/08/2014
- Sửa in hàng loạt không lặp lại - Sửa lỗi code giớ hạn 18 field
Bạn giúp mình chuyển sheet kết quả thành trang giấy ngang
 
Upvote 0
Bạn đọc bài #154 của topic này.
em đã làm như vậy rồi, nhưng khi in căn trang in nó không được đẹp lắm ạ, em tưởng có cách khác nên em hỏi lại
em còn thắc mắc nữa là, tại sao các trang cuối bản in căn dư giấy mà chúng không dồn cho đủ trang ( trang 55-trang 57 của em đều dư giấy trang ở cuối trang ạ )
 

File đính kèm

  • In Form the CĐ.xls
    1.5 MB · Đọc: 13
Upvote 0
em đã làm như vậy rồi, nhưng khi in căn trang in nó không được đẹp lắm ạ, em tưởng có cách khác nên em hỏi lại
em còn thắc mắc nữa là, tại sao các trang cuối bản in căn dư giấy mà chúng không dồn cho đủ trang ( trang 55-trang 57 của em đều dư giấy trang ở cuối trang ạ )
Tôi trả lời 2 thắc mắc của bạn:

1/ Bạn hãy thiết lập in 2 phiếu trên 1 cột, hiện bạn đang khai báo 4 phiếu trên 1 cột

2/ Bạn phải hiểu được cơ chế căn trong của Excel thì sẽ không phải hỏi câu này. Bạn vào View | Page Break Preview để nhìn cách Excel căn trang qua đó sẽ tự trả lời được tại sao trang 55-57 chỉ có 2 phiếu trong khi tất cả các trang khác lại có 6 phiếu
 
Upvote 0
Tôi trả lời 2 thắc mắc của bạn:

1/ Bạn hãy thiết lập in 2 phiếu trên 1 cột, hiện bạn đang khai báo 4 phiếu trên 1 cột

2/ Bạn phải hiểu được cơ chế căn trong của Excel thì sẽ không phải hỏi câu này. Bạn vào View | Page Break Preview để nhìn cách Excel căn trang qua đó sẽ tự trả lời được tại sao trang 55-57 chỉ có 2 phiếu trong khi tất cả các trang khác lại có 6 phiếu
vâng ạ, tại em hiểu nhầm vẫn đề là số cột thẻ trên/1 trang thành số thẻ / 1 trang
 
Upvote 0
Vậy bạn đã làm được chưa? Có dễ sử dụng không bạn?
Nhờ bạn hướng dẫn mình khai báo textbox trong sheet khai bao, mình có chèn thêm 1 textbox nửa nhưng làm sao chèn được dữ liệu vào textbox mới chèn vào.
 

File đính kèm

  • In Form co lap lai 08.2014.xls
    243.5 KB · Đọc: 10
Upvote 0
Web KT
Back
Top Bottom