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:
Trước tiên bạn phải đọc hướng dẫn đã.
Bạn cứ làm đi, đến đoạn nào khuc mắc tôi sẽ giải đáp.
Dạ anh ! Em làm đến đoạn lập userform, em tạo Từ phiếu....đến phiếu....rồi ạ, nhưng em ko biết cách lấy số thứ tự phiếu từ sheet nhập liệu để đưa vào đó nên khi em chạy thử thì bảng tùy chọn in có hiện lên nhưng em ko chọn đc từ phiếu ...đến phiếu....ạ, làm ơn chỉ giúp em với ạ, em xin cảm ơn ạ!
 
Upvote 0
Dạ anh ! Em làm đến đoạn lập userform, em tạo Từ phiếu....đến phiếu....rồi ạ, nhưng em ko biết cách lấy số thứ tự phiếu từ sheet nhập liệu để đưa vào đó nên khi em chạy thử thì bảng tùy chọn in có hiện lên nhưng em ko chọn đc từ phiếu ...đến phiếu....ạ, làm ơn chỉ giúp em với ạ, em xin cảm ơn ạ!
Nếu bạn sử dụng tiện ích này để làm thì bạn post những gì đã làm được lên nhé.
 
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...

Dạ xin chào anh. Em đang nghiên cứu áp dụng file in Form hàng loạt có lặp lại vào trong công việc của mình. Nhưng công việc của em không giống trong file mà:
1. Form mẫu như VD trong file nhưng có cả mặt sau
2. Không cần in ra giấy mà cần tạo mặt trước thành 1 file JPEG hoặc BMP và mặt sau thành 1 file.
3. Lấy thông tin trong cột B sheet Data để đặt tên cho file. VD: file mặt trước là VN00001(1) và file mặt sau là VN00001(2)
Thật sự là em không biết về VBA nên không biết thêm nếm thế nào để áp dụng được. Rất mong các anh chỉ làm giúp. Xin trân trọng cảm ơn ạ
 
Upvote 0
Nhờ bác giúp em file này ạ. Em có 1 file excel trong đó 1 sheet là form, 1 sheet là dữ liệu và 1 thư mục chứa ảnh, ảnh được đặt tên theo kiểu "họ và tên-năm sinh". Trên sheet form có 8 thẻ ảnh. Yêu cầu là, ở mỗi thẻ sẽ được tự động chèn dữ liệu theo dữ liệu bên sheet "dữ liệu" và trèn ảnh theo "họ và tên-năm sinh" ở thư mục ảnh. 1 lần chèn 8 dữ liệu, tạo 1 nút lệnh để chuyển đổi 8 dữ liệu tiếp theo (để in). Mong bác giúp em, cảm ơn bác nhiều
 

File đính kèm

  • IN HOANG LOAT.rar
    1.2 MB · Đọc: 24
Upvote 0
Bạn đã đọc hướng dẫn hay là bạn post hỏi luôn?


Nhờ bác giúp em file này ạ. Em có 1 file excel trong đó 1 sheet là form, 1 sheet là dữ liệu và 1 thư mục chứa ảnh, ảnh được đặt tên theo kiểu "họ và tên-năm sinh". Trên sheet form có 8 thẻ ảnh. Yêu cầu là, ở mỗi thẻ sẽ được tự động chèn dữ liệu theo dữ liệu bên sheet "dữ liệu" và trèn ảnh theo "họ và tên-năm sinh" ở thư mục ảnh. 1 lần chèn 8 dữ liệu, tạo 1 nút lệnh để chuyển đổi 8 dữ liệu tiếp theo (để in). Mong bác giúp em, cảm ơn bác nhiều
 
Upvote 0
Bạn đã đọc hướng dẫn hay là bạn post hỏi luôn?
em đã đọc kỹ và làm được, rất tuyệt vơi, nhưng có 1 lỗi nhỏ. file in hoàng loạt có lặp tại khi chọn in theo số thứ tự thì báo lõi, "khoản mục với tên chỉ ra không tìm thấy" và báo lỗi dòng lệnh Sheets(Sheet1.[C1].Value).Shapes(arrkb(i, 8)).Select
Vì vậy chỉ in được theo kiểu tùy chọn
 
Upvote 0
em đã đọc kỹ và làm được, rất tuyệt vơi, nhưng có 1 lỗi nhỏ. file in hoàng loạt có lặp tại khi chọn in theo số thứ tự thì báo lõi, "khoản mục với tên chỉ ra không tìm thấy" và báo lỗi dòng lệnh Sheets(Sheet1.[C1].Value).Shapes(arrkb(i, 8)).Select
Vì vậy chỉ in được theo kiểu tùy chọn
Bạn có thể post file lỗi để tôi kiểm tra nhé.
 
Upvote 0
Upvote 0
Anh Ơi Em Bán Hàng Online . Anh có Thể làm giúp em cái phếu in ra gồm những mục sau được không ạ.
Họ Và Tên , Địa Chỉ , Số Điện Thoại, Giá Tiền , Loại sản Phẩm. giúp em với
 
Upvote 0
Chân thành cám ơn bạn dhn46 đã tạo ra file in form hàng loạt, tôi đã dùng mấy năm nay rồi, nhưng có vấn đề khi muốn in hàng loạt trên 1 trang A4 hoặc A5 thì khoảng cách giữa các form rất nhỏ thường là phải chỉnh thủ công khi in ít trang, nếu in nhiều ko chỉnh được cắt hơi khó, ví dụ khi 4 form tương đương A6 trên khổ giấy A4 thì phần lề rát rộng mà khoảng cách giữa các form lại rất nhỏ gây khó khăn cho việc cắt khi làm thẻ đến 1000 cái.
Nếu được bạn chia sẻ trên diễn đàn và cc mail cho tôi khaibacha@gmail.com
Mong bạn giúp đỡ !
 
Upvote 0
Chân thành cám ơn bạn dhn46 đã tạo ra file in form hàng loạt, tôi đã dùng mấy năm nay rồi, nhưng có vấn đề khi muốn in hàng loạt trên 1 trang A4 hoặc A5 thì khoảng cách giữa các form rất nhỏ thường là phải chỉnh thủ công khi in ít trang, nếu in nhiều ko chỉnh được cắt hơi khó, ví dụ khi 4 form tương đương A6 trên khổ giấy A4 thì phần lề rát rộng mà khoảng cách giữa các form lại rất nhỏ gây khó khăn cho việc cắt khi làm thẻ đến 1000 cái.
Nếu được bạn chia sẻ trên diễn đàn và cc mail cho tôi khaibacha@gmail.com
Mong bạn giúp đỡ !
Chào bạn,

Việc này giải quyết rất đơn giản như sau:

Giả sử Form của bạn từ A1:F20 thì bạn hãy khai báo vùng in như sau:

-/ Bắt đầu: A1
-/ Kết thúc: G21

=> Như vậy sẽ thừa ra dòng thứ 21 và cột G so với Form.

Dòng 21 và cột G này để trống chỉnh kích thước theo ý của bạn.

Khi bạn in kích thước khe hở Form sẽ được như ý.
 
Upvote 0
Chào bạn,

Việc này giải quyết rất đơn giản như sau:

Giả sử Form của bạn từ A1:F20 thì bạn hãy khai báo vùng in như sau:

-/ Bắt đầu: A1
-/ Kết thúc: G21

=> Như vậy sẽ thừa ra dòng thứ 21 và cột G so với Form.

Dòng 21 và cột G này để trống chỉnh kích thước theo ý của bạn.

Khi bạn in kích thước khe hở Form sẽ được như ý.

Thanks dhn46 rất nhiều, mẹo cực kỳ đơn giản
 
Upvote 0
Chào bác dhn46
bác giúp em file này với ạ, em muốn in các tem thẻ sản phẩm mà mỗi sp lại yêu cầu số lượng tem khác nhau , các tem có cùng mẫu in
làm thế nào để đặt 1 lệnh in ó chạy hết số tem cần in trong sheet "ten sp"
Mong bác giúp đỡ
 

File đính kèm

  • IN THE XUAT.xlsx
    53.7 KB · Đọc: 6
Upvote 0
Chào bác dhn46
bác giúp em file này với ạ, em muốn in các tem thẻ sản phẩm mà mỗi sp lại yêu cầu số lượng tem khác nhau , các tem có cùng mẫu in
làm thế nào để đặt 1 lệnh in ó chạy hết số tem cần in trong sheet "ten sp"
Mong bác giúp đỡ
Chào bạn,

Bạn đã ứng dụng được tiện ích tới đâu? Bạn hãy up phần bạn làm được lên đây tôi sẽ tư vấn thêm.
 
Upvote 0
Web KT
Back
Top Bottom