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,202
Lần chỉnh sửa cuối:
Bác ơi cho em hỏi là sao kết quả của em khi xuất ra mà trang in cứ bắt đầu từ cột B5 chứ ko phải từ góc đầu là A1 ạ, ( em đã căn chỉnh form của em bắt đầu từ điểm A1 rồi ạ). Bác giúp em với ạ cảm ơn bác nhiều ạ
Chào bạn,

Đó là chủ ý của tôi nhé. Nếu bạn biết tùy biến Code thì bạn có thể sửa trong Module
 
Upvote 0
Chào bạn,

Đó là chủ ý của tôi nhé. Nếu bạn biết tùy biến Code thì bạn có thể sửa trong Module

Chào Thầy,

Em muốn hỏi có cách nào in hàng loạt nhiều giá trị filter không ạ, em đã thử tìm hiểu mấy hôm nay nhưng chưa có cách nào móc nối câu lệnh trên VBA được ạ
 
Upvote 0
Chào Thầy,

Em muốn hỏi có cách nào in hàng loạt nhiều giá trị filter không ạ, em đã thử tìm hiểu mấy hôm nay nhưng chưa có cách nào móc nối câu lệnh trên VBA được ạ
Chào bạn,

Bạn có thể làm theo cách này.

1/ Đặt cột phụ theo điều kiện Filter của bạn. Ví dụ: If(A1=1,1,0)
2/ Sắp xếp lại theo cột phụ này
3/ Tiến hành in vùng đã sắp xếp cùng nhau.
 
Upvote 0
Chào bạn,

Bạn có thể làm theo cách này.

1/ Đặt cột phụ theo điều kiện Filter của bạn. Ví dụ: If(A1=1,1,0)
2/ Sắp xếp lại theo cột phụ này
3/ Tiến hành in vùng đã sắp xếp cùng nhau.

Chào Thầy,

Cách thầy nói em cũng đã có nghĩ đến rồi ạ nhưng dữ liệu của em lại nhiều khoảng 5 nghìn dòng.
Vướng mắc của em ở đây là 1 giá trị ở cột C có nhiều giá trị giống nhau. Em chưa nghĩ ra hàm nào để gán giá trị vào cột phụ mà những giá trị trùng nhau tại cột C vẫn là 1 giá trị
VD: Cột phụ là cột A sẽ bằng
A2=1
A3=2
A4=3
A5=3
A6=3
A7=4
Hằng ngày em vẫn phải làm thủ công filter cột C để in thủ công mỗi ngày làm khoảng 500 thao tác in rất mệt và mỏi mắt, thầy có cách nào giúp được em không ạ.
Em cảm ơn thầy nhiều.
 
Lần chỉnh sửa cuối:
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
MÌNH LÀM THỬ MÀ KHÔNG CHÈN ĐC ẢNH NHỈ. GIÚP MÌNH NHÉ!
 

File đính kèm

  • Hoi dien dan.rar
    1.4 MB · Đọc: 18
Upvote 0
để mình xem lại
 
Lần chỉnh sửa cuối:
Upvote 0
MÌNH LÀM THỬ MÀ KHÔNG CHÈN ĐC ẢNH NHỈ. GIÚP MÌNH NHÉ!
Góp ý cho bạn:
1/ Bạn nên mở Topic khác trong Box Lập trình với Excel, có tiêu đề là dùng SheetForm để nhập liệu và gán ảnh vào phiếu trả kết quả (vì nội dung của bạn không thuộc chủ đề in hàng loạt).
2/ Chủ đề mới sẽ được nhiều thành viên giúp đỡ hơn.
3/ Nên giải thích cụ thể hơn là đưa ảnh vào Cell nào của sheet nào?
 
Upvote 0
Góp ý cho bạn:
1/ Bạn nên mở Topic khác trong Box Lập trình với Excel, có tiêu đề là dùng SheetForm để nhập liệu và gán ảnh vào phiếu trả kết quả (vì nội dung của bạn không thuộc chủ đề in hàng loạt).
2/ Chủ đề mới sẽ được nhiều thành viên giúp đỡ hơn.
3/ Nên giải thích cụ thể hơn là đưa ảnh vào Cell nào của sheet nào?
mình làm trên form in hàng loạt mà ko chèn được ảnh mà bạn
 
Upvote 0
mình làm trên form in hàng loạt mà ko chèn được ảnh mà bạn
Bài 211 tôi nêu mở Topic khác trong Box Lập trình với Excel, rồi muốn gì nữa thì tôi mới góp ý tiếp.
Vì bài của bạn khác chủ đề (sẽ vi phạm nội quy) nên tôi không trả lời cụ thể cho bạn ở Topic này.
 
Upvote 0
Giúp mình nhé. Không chèn được ảnh.
Bạn sửa F1 trong sheet Khai bao thành
Mã:
C:\Users\ADMIN\Desktop\Hoi dien dan\anh
Đây là Link thư mục ảnh. Có thể do các phiên bản Excel mà nút lệnh get folder sẽ lấy thiếu link.

Bạn kiểm tra lại 1 lần nữa và phản hồi nhé.
 
Upvote 0
Bạn sửa F1 trong sheet Khai bao thành
Mã:
C:\Users\ADMIN\Desktop\Hoi dien dan\anh
Đây là Link thư mục ảnh. Có thể do các phiên bản Excel mà nút lệnh get folder sẽ lấy thiếu link.

Bạn kiểm tra lại 1 lần nữa và phản hồi nhé.
Tiện ích của bạn rất hay, nhưng có vẻ hơi rắc rối, thiếu uyển chuyển về form , nếu được bạn chỉnh lại thì tốt quá
 
Upvote 0
Bạn sửa F1 trong sheet Khai bao thành
Mã:
C:\Users\ADMIN\Desktop\Hoi dien dan\anh
Đây là Link thư mục ảnh. Có thể do các phiên bản Excel mà nút lệnh get folder sẽ lấy thiếu link.

Bạn kiểm tra lại 1 lần nữa và phản hồi nhé.
Mình để ý đến chuyện nó lấy thiếu link rồi nhưng vẫn thế. hình ảnh vẫn không chèn được vào. mình dùng win 10pro, office 2013 ko biết có liên quan đến chuyện tương thích với code VBA ko nữa
 
Upvote 0
Chào mọi người: Hiện tại mình muốn in hàng loạt, nhưng mỗi dữ liệu lại có số lượng trang in khác nhau. Vậy có cách nào thực hiện được hay không?
 
Upvote 0
Web KT
Back
Top Bottom