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:
http://www.giaiphapexcel.com/forum/showthread.php?78844-Nhờ-mọi-người-giúp-em-tạo-cho-form-này
Em đã hiểu và làm được rồi thật là tuyệt vời và hoàn hảo, Em rất hài lòng với form này
Nếu in 10 code thì có thể lưu lại là 10 code này đã in rồi không ạ
em cám ơn
- Các bạn sử dụng và góp ý.
- Chú ý: với phương thức in chon lọc thì giữ phím Ctrl để chon các điều kiện riêng rẽ
- Form mẫu trong File chỉ là ví dụ, các bạn có thể tạo Form và Data mới hoàn toàn theo ý mình.
Thân!
 
Upvote 0
Có ai vui lòng và tốt bụng xin chuyển bài #1 và #4 sang excell 2003
Xin cám ơn rất nhiều
 
Upvote 0
Có ai vui lòng và tốt bụng xin chuyển bài #1 và #4 sang excell 2003
Xin cám ơn rất nhiều
Các ví dụ đều được viết trên Excel 2003. Tôi nén dạng .zip, bạn có thể Down và mở trực tiếp không cần phần mềm hỗ trợ.
Cảm ơn bạn đã quan tâm!
 
Upvote 0
http://www.giaiphapexcel.com/forum/showthread.php?78844-Nhờ-mọi-người-giúp-em-tạo-cho-form-này
- Các bạn sử dụng và góp ý.
- Chú ý: với phương thức in chon lọc thì giữ phím Ctrl để chon các điều kiện riêng rẽ
- Form mẫu trong File chỉ là ví dụ, các bạn có thể tạo Form và Data mới hoàn toàn theo ý mình.
Thân!
em muốn hỏi sau khi tạo data, form và khai báo mới thì làm sao để ra kết quả ạ?
 
Upvote 0
Cho tôi hỏi hình thẻ nhân viên phải lưu ra sao để link vào được file. nếu làm file có khoảng 1000 hình thẻ thì có bị mất dữ liệu không ạ?
 
Upvote 0
Tôi đã sử dụng file in hàng loạt thẻ nhân viên của bạn nhưng chưa biết cách chèn ảnh tự động từ foder có sẵn vào sheet kết quả. Vui lòng hướng dẫn giúp tôi.
Xin cảm ơn!
 
Upvote 0
Cho tôi hỏi hình thẻ nhân viên phải lưu ra sao để link vào được file. nếu làm file có khoảng 1000 hình thẻ thì có bị mất dữ liệu không ạ?

Tôi đã sử dụng file in hàng loạt thẻ nhân viên của bạn nhưng chưa biết cách chèn ảnh tự động từ foder có sẵn vào sheet kết quả. Vui lòng hướng dẫn giúp tôi.
Xin cảm ơn!

- Như dhn46 đã hướng dẫn trong File .doc và Video để chèn được hình vào Form thì bạn cần làm các bước sau

1/ Đặt tên ảnh trùng với Code: ví dụ nhân viên có mã số VN001 thì ảnh phải có tên VN001.jpg

2/ Vẽ một hình vuông trong Sheet Form và đặt tên cho hình vuông đó (bạn xem Video để biết cách đặt tên)

3/ Khai báo thông tin: + Cột mã số
+ Link Folder ảnh

Cũng khá đơn giản khi làm các thủ tục này.

- Khi các bạn thực hiện in thẻ thì không mất thông tin gì cả.
- Form này mình đã ứng dụng tại công ty của mình, với thẻ thao tác của khoảng trên 2000 người, các biểu mẫu, in nhãn hàng, in giấy mời, in tờ khai bảo hiểm, in hợp đồng lao động... (nhân sự công ty khoảng 6000 người)

Mong các bạn có thể ứng dụng vào công việc của mình.
Thân!
 
Upvote 0
Cảm ơn bạn tôi đã làm được theo cách của bạn vậy cho tôi hỏi nếu hình thẻ được scan vào thì làm cách nào để link hình vào được ạ? Vì công ty thường lấy hình thẻ của NV rồi scan cắt dán để làm thẻ không phải hình chụp nên không có đuôi .jpg.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn tôi đã làm được theo cách của bạn vậy cho tôi hỏi nếu hình thẻ được scan vào thì làm cách nào để link hình vào được ạ? Vì công ty thường lấy hình thẻ của NV rồi scan cắt dán để làm thẻ không phải hình chụp nên không có đuôi .jpg.
Chào bạn,

Các dạng lưu trữ hình ảnh chuẩn không nên Scan nhúng vào các file khác như (PDF, ...). Vì thế bạn cần xử lý hình ảnh trước khi sử dụng. Tôi nghĩ phần mềm nào cũng vậy phải có địa chỉ rõ ràng thì mới Add, hay chèn vào được

Để xử lý hình ảnh có nhiều phương pháp, bạn có thể tìm trên GPE hoặc trên Internet để xử lý.

Chúc bạn thành công
 
Upvote 0
Ở file Form 2 của anh rất hay, rất đáng học hỏi. Nhưng để chỉnh sửa lại áp dụng thì xin anh chỉ cho em, và em có vài câu hỏi và vài điều thắc mắc, nếu có gì sai mong anh , các bạn bỏ qua cho em:

- Sheet Khai bao:
1. Tại cột A có dòng là "x" có dòng là "1" có nghĩa là gì.
2. Cột F khung ảnh là sao, có phải là size cua file hình đó ( VD: 13 x 18 .v.v...)
3. Cột tên ảnh là sao?
Tại F1: em có thể hiểu là nơi chứ file hình, nhưng khi em sửa lại đừng dẫn của file hình lại , hoặc em tao 1 thư mục ở ổ D nhưng vẫn không tìm thấy hình ảnh. CÓ thể là do em không biết cách . Mong anh tận tình chỉ giúp em.

Tại sheet Data, sheet KQ và 2 nút in. Chỗ này em đã có tìm hiểu mà không ra rất mong anh tận tình bỏ chút thời gian giải thích dùm em, em đã cố gắn đọc , tra cứu tìm hiểu nhiều đủ kiểm mà không thể nào hiểu cách anh viết.
Nếu anh có thời gian xin anh chỉ dùm em ở chổ VBA anh viết thì mỗi dùng có tác dụng gì cho cái gì được không anh, Em biết là em đòi hỏi hơi quá đáng, nhưng em đã bỏ ra cũng 10 ngày để dịch cách thức làm của anh mà không sao hiểu nổi VBA anh viết những gì.
Xin mọi người đừng ném đá em.
Cám ơn anh nhiều.
 
Upvote 0
Em đã áp dụng File của anh vào công việc xuất phiếu thu chi của em, nhưng không được, kết xuất data vẫn ra nhưng tại sheet KQ không ra như mong muốn.
VD: Số phiếu chi số 1 ,3,4,5 .v.v... in ra nó nhảy sang trang khác , nếu in trang 1,2 thì được nhưng từ số phiếu chi 3,4 trở đi thì bị khi in bị nhảy trang ( tức là 3 1 nữa trang và 4 thì bên thành 2 trang. Em nghĩ là chắc có sửa chữa gì trong VBA, mong anh chỉ thêm.
Nếu dùng lệnh in tùy chon thì được nhưng in theo STT thì máy báo lỗi ngay.
Nên mong anh hướng dẫn và giải thích từng dòng của VBA mà anh viết để em có thể áp dụng vào công việc của em tốt hơn. và tùy biến trong những phần hành khác.
Cám ơn anh nhiều
 
Upvote 0
Chào bạn truckhoa2006

Mình trả lời 3 vấn đề bạn hỏi:

1/ Dấu "x" tại Cột A là để đánh dấu cột có dữ liệu, nhưng có lẽ cái này sẽ cần phải cải tiến thêm, bạn áp dụng vào công việc của mình thì không cần quan tâm tới cột đó, nếu tìm hiểu Code thì bạn có thể xem thêm trong nguồn.

2/ Vấn đề nhảy trang: Nguyên lý của việc in đó là Form như nào thì kết quả như thế vậy do đó sự định dạng trong tất cả các phiếu đều đồng nhất. Vậy bạn hãy căn chỉnh lề trong Print Preview để có kết quả chuẩn.
Kinh nghiệm của mình dùng Form cho thấy khi chỉnh chuẩn 1 trang đầu vừa khít Margin thì các trang còn lại sẽ không bị tràn lề.

3/ In theo số thứ tự đó là bạn sẽ in số thứ tự từ x => y. ô ghi số thứ tự là cố định trên Sheet. do đó nếu bạn chèn cột ô thứ tự bị đổi sẽ gây lỗi. (đây cũng là vấn đề phát sinh và có thể sẽ là điểm chú ý cho việc Update Form lần tới)

Chúc bạn ứng dụng được Form vào công việc của mình và hiểu Code trong File.

Thân!
 
Upvote 0
Em có làm thử 1 file tiền lương và kết hợp với file của anh cho nhưng khi in nó báo lỗi, gì đó mà em không hiểu. Mặc dùng đã giữ nguyên bản của anh và thay bằng nội dung của em.
Vậy nên em gửi file lên nhờ anh chỉ giúp em lại, vì do bảng lương này em thiết kế đến 15 sheet quá nặng, nên em chỉ kết xuất 2 sheet tượng trưng và cũng là 2 sheet cần xuất ra tường phiếu lương cho từng người, mà file của anh có phải mỗi lần chỉ được 1 sheet ; Vì trong trường hợp này file của em có 2 sheet cần in , mà anh chỉ có 1 bảng khai báo nên em gửi anh chỉ giúp em ; 2 sheet gồm : LUONGQCKY.2 (Lương quy chế kỳ 2) và LUONGHDKY.2 ( Lương hợp đồng kỳ 2).
Xin anh và mọi người biết xin chỉ giúp em.
Cám ơn mọi người.
 

File đính kèm

  • Hỏi dien dan 5.rar
    48.8 KB · Đọc: 85
Upvote 0
Em có làm thử 1 file tiền lương và kết hợp với file của anh cho nhưng khi in nó báo lỗi, gì đó mà em không hiểu. Mặc dùng đã giữ nguyên bản của anh và thay bằng nội dung của em.
Vậy nên em gửi file lên nhờ anh chỉ giúp em lại, vì do bảng lương này em thiết kế đến 15 sheet quá nặng, nên em chỉ kết xuất 2 sheet tượng trưng và cũng là 2 sheet cần xuất ra tường phiếu lương cho từng người, mà file của anh có phải mỗi lần chỉ được 1 sheet ; Vì trong trường hợp này file của em có 2 sheet cần in , mà anh chỉ có 1 bảng khai báo nên em gửi anh chỉ giúp em ; 2 sheet gồm : LUONGQCKY.2 (Lương quy chế kỳ 2) và LUONGHDKY.2 ( Lương hợp đồng kỳ 2).
Xin anh và mọi người biết xin chỉ giúp em.
Cám ơn mọi người.

File gốc có chứa Macro, bạn copy các sheet từ file gốc sang file của bạn dẫn đến lỗi.
Bạn hãy coppy từ file của bạn sang file gốc nhé.
Mình làm thử cho bạn xem. Mong sẽ giúp bạn bớt thời gian trong công việc
 

File đính kèm

  • In Form co lap lai.rar
    30.9 KB · Đọc: 293
Upvote 0
File gốc có chứa Macro, bạn copy các sheet từ file gốc sang file của bạn dẫn đến lỗi.
Bạn hãy coppy từ file của bạn sang file gốc nhé.
Mình làm thử cho bạn xem. Mong sẽ giúp bạn bớt thời gian trong công việc

Cám ơn bạn nhiều nhiều, để mình thử xem sao. ( Uh, mà sao mình không copy sheet mình qua sheet gốc nhỉ, , làm nhiều quá hóa rồ rùi hihi)
Cám ơn bạn nha.
 
Upvote 0
Theo cách anh chỉ em đã chuyển tất cả dữ liệu của em vào file gốc của anh, rất thành công rất OK. Cám ơn anh nhiều nhiều.
Nhưng có một vấn đề là Lương cho nhân viên ở công ty em phân làm 2 mảng lương khoán việc và lương Hợp đồng chính thức. Và 2 loại lương trên có 2 sheet khác nhau, do đó cần in 2 loại phiếu lương có nội dung khác nhau. Theo như bài #17 mà em gửi thì có 2 sheet khác nhau .
Vậy em xin anh ý kiến cho việc in sao cho có hiệu quả. Rất rất cám ơn anh.
 
Upvote 0
Web KT
Back
Top Bottom