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

  • Thread starter Thread starter dhn46
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

dhn46

Hướng tới tương lai
Tham gia
1/3/11
Bài viết
3,251
Được thích
3,870
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

Lần chỉnh sửa cuối:
Tôi đã đọc tin nhắn của bạn và đã trả lời. Bạn không đọc kỹ từng từ?

Trong đó tôi có nói Scan mẫu giấy theo tỷ lệ 1:1.

Khi bạn chèn vào Excel cũng theo tỷ lệ 1:1.

File của bạn tôi thấy ảnh méo xẹo như thế kia thì làm sao in ko lệch.

Bạn chèn làm sao để in 1 cái giấy khen nó trùng khít phôi thì bạn áp dụng in form sẽ chuẩn.

Mình đã căn thử rất nhiều rồi, Bởi vì đến page thứ 2 ảnh cứ mặc định cách đều mép dẫn đến các page sau cũng bị đẩy theo. Vấn đề là ở đó. Không phải mình không theo cách bác nói nhưng mình làm không thấy được, bác giúp mình với
 
Upvote 0
Mình đã căn thử rất nhiều rồi, Bởi vì đến page thứ 2 ảnh cứ mặc định cách đều mép dẫn đến các page sau cũng bị đẩy theo. Vấn đề là ở đó. Không phải mình không theo cách bác nói nhưng mình làm không thấy được, bác giúp mình với
File này mình làm theo như bạn nói.
 

File đính kèm

Upvote 0
Mình đã căn thử rất nhiều rồi, Bởi vì đến page thứ 2 ảnh cứ mặc định cách đều mép dẫn đến các page sau cũng bị đẩy theo. Vấn đề là ở đó. Không phải mình không theo cách bác nói nhưng mình làm không thấy được, bác giúp mình với
Một thao tác vô cùng đơn giản đó là bạn set lề cho trang in.

Bạn set lề cho trang in vừa với Form là được.
 
Upvote 0
Một thao tác vô cùng đơn giản đó là bạn set lề cho trang in.

Bạn set lề cho trang in vừa với Form là được.
À được rồi bạn ơi nhưng mà tại sao mắt thường thì nhìn như vậy nhưng khi Ctr P xem trước khi in thì phần shape thông tin cá nhân nó toàn bị lệch là sao hả bạn?
 
Upvote 0
Em chào anh. Cảm ơn anh về bải viết hữu ích.
Em đã thử thay thế số liệu tuy nhiên khi in ra vẫn không hiển thị ảnh. Anh xem file đính kèm giúp em với xem sai sót ở đâu ạ. +-+-+-+
 

File đính kèm

Upvote 0
Em chào anh. Cảm ơn anh về bải viết hữu ích.
Em đã thử thay thế số liệu tuy nhiên khi in ra vẫn không hiển thị ảnh. Anh xem file đính kèm giúp em với xem sai sót ở đâu ạ. +-+-+-+
Phần khai báo Link ảnh bạn thiếu dấu \ ở cuối chuỗi
Đúng phải là:
Mã:
D:\HUYEN\Ví dụ[SIZE=3][COLOR=#ff0000][B]\[/B][/COLOR][/SIZE]
 
Upvote 0
Chào thầy dhn46,
Đối với form không lặp lại, giới hạn tối đa của trường Data là bao nhiêu cột vậy thầy.
Em chỉnh sửa để làm 1 form khác thì thấy nó cho tối đa là 18 thôi, có cách nào tăng lên không thầy.
Chân thành cảm ơn.
 
Upvote 0
Chào thầy dhn46,
Đối với form không lặp lại, giới hạn tối đa của trường Data là bao nhiêu cột vậy thầy.
Em chỉnh sửa để làm 1 form khác thì thấy nó cho tối đa là 18 thôi, có cách nào tăng lên không thầy.
Chân thành cảm ơn.

Rất cảm ơn bạn đã thử và phát hiện những điểm hạn chế.

Tôi đã sửa lại phiên bản "In hàng loạt không lặp lại" bỏ giới hạn 18 Fields, phiên bản này sẽ hỗ trợ rất nhiều field chắc chắn đủ cho bạn sử dụng.

Bạn thử và phản hồi nhé

P/s: mình không phải thầy gì đâu bạn, chỉ là 1 thành viên GPE bình thường mong góp sức để mọi người bớt thời gian thao tác và chia sẽ những gì mình đã học được thôi bạn

Chúc bạn thành công!
dhn46
 
Upvote 0
Rất cảm ơn bạn đã thử và phát hiện những điểm hạn chế.

Tôi đã sửa lại phiên bản "In hàng loạt không lặp lại" bỏ giới hạn 18 Fields, phiên bản này sẽ hỗ trợ rất nhiều field chắc chắn đủ cho bạn sử dụng.

Bạn thử và phản hồi nhé

P/s: mình không phải thầy gì đâu bạn, chỉ là 1 thành viên GPE bình thường mong góp sức để mọi người bớt thời gian thao tác và chia sẽ những gì mình đã học được thôi bạn

Chúc bạn thành công!
dhn46

Chào thầy dhn46 (lỡ rồi, vì em học được rất nhiều thủ thuật excel từ các bài viết của thầy)
Em đã thử phiên bản mới và đã áp dụng được vào việc tạo form cho công việc.
Chân thành cảm ơn.
 
Upvote 0
Tạo nhãn hàng loạt

Kính gởi Thầy dhn46, trước hết em xin lỗi thầy về việc sử dụng file của thầy nhưng đã chỉnh sửa lại.!$@!!
Kính nhờ thầy sửa giúp em file này. Do em chưa hiểu lắm cấu trúc nên em làm file lung tung.
Em xin cám ơn Thầy rất nhiều. Mong được sự chỉ dẫn từ thầy

http://www.mediafire.com/download/vp7hncbufobvaj9/In+Nhãn+Macro.xls
 
Upvote 0
Kính gởi Thầy dhn46, trước hết em xin lỗi thầy về việc sử dụng file của thầy nhưng đã chỉnh sửa lại.!$@!!
Kính nhờ thầy sửa giúp em file này. Do em chưa hiểu lắm cấu trúc nên em làm file lung tung.
Em xin cám ơn Thầy rất nhiều. Mong được sự chỉ dẫn từ thầy

http://www.mediafire.com/download/vp7hncbufobvaj9/In+Nhãn+Macro.xls
Chào bạn,

Code Public nên bạn có thể chỉnh sửa sao cho phù hợp với yêu cầu.

Như Topic kia tôi đã nói bạn chưa tùy biến được thì bạn sử dụng file gốc để làm nhé.

Dưới đây là kết quả của bạn. Bạn kiểm tra và phản hồi.
 

File đính kèm

Upvote 0
Em gởi thầy file em làm từ file của thầy, em bỏ chức năng in tùy chọn do không sử dụng. Phần textbox em có thêm 4 textbox nhưng kết quả điền không đúng. Thầy giúp em chỗ số lượng in, em định chỉ cần nhập số lượng nhãn nhấn in thì in đúng số lượng đó. Không cần điền from...to...
Em cám ơn Thầy rất nhiều ạ
http://www.mediafire.com/download/etqq7pc3xxugd56/In+Form+co+lap+lai+04.2016.xls
 
Upvote 0
Em gởi thầy file em làm từ file của thầy, em bỏ chức năng in tùy chọn do không sử dụng. Phần textbox em có thêm 4 textbox nhưng kết quả điền không đúng. Thầy giúp em chỗ số lượng in, em định chỉ cần nhập số lượng nhãn nhấn in thì in đúng số lượng đó. Không cần điền from...to...
Em cám ơn Thầy rất nhiều ạ
http://www.mediafire.com/download/etqq7pc3xxugd56/In+Form+co+lap+lai+04.2016.xls
Chòa bạn,

Bạn đã xóa Form nhập số thứ tự, không được là điều tất nhiên.

Chương trình tôi viết cho nhiều người sử dụng với nhiều mục đích nên không thể chỉnh sửa cho riêng 1 mình bạn được trừ phi do lỗi chương trình.

Nếu bạn edit theo ý bạn thì bạn có thể dựa vào code mà edit nhé.
 
Upvote 0
Mình cũng đã sử dụng file in hàng loạt thẻ để áp dụng in thẻ cử tri nhưng khi khai báo thêm một vài thông tin thì khi in bị báo lỗi, mong mọi người giúp đỡ mình với. Cảm ơn nhiều ạ!
 

File đính kèm

Upvote 0
Mình cũng đã sử dụng file in hàng loạt thẻ để áp dụng in thẻ cử tri nhưng khi khai báo thêm một vài thông tin thì khi in bị báo lỗi, mong mọi người giúp đỡ mình với. Cảm ơn nhiều ạ!

Bạn Post file đã thêm trường mà vẫn lỗi lên tôi xem được không? File này chưa áp dụng In hàng loạt.

Có thể do thao tác của bạn sai. Tôi sẽ chỉ để bạn áp dụng và tùy biến cho những trường hợp tương tự.
 
Upvote 0
vâng. mình cảm ơn nhé. mình gửi lại đây.
Bạn sai ở chỗ sau:

Bạn đã tải tiện ích về, đã khai báo đúng các bước nhưng lại SAVE dạng *.xlsx. *.xlsx sẽ xóa toàn bộ code tôi viết nên không thể chạy chương trình. Bạn tìm hiểu định dạng *.xlsx tại diễn đàn nhé.

Tôi lấy y nguyên những gì bạn đã khai báo cho vào chương trình gốc như file đính kèm, bạn kiểm tra vafphanr hồi nhé.
 

File đính kèm

Upvote 0
Bạn sai ở chỗ sau:

Bạn đã tải tiện ích về, đã khai báo đúng các bước nhưng lại SAVE dạng *.xlsx. *.xlsx sẽ xóa toàn bộ code tôi viết nên không thể chạy chương trình. Bạn tìm hiểu định dạng *.xlsx tại diễn đàn nhé.

Tôi lấy y nguyên những gì bạn đã khai báo cho vào chương trình gốc như file đính kèm, bạn kiểm tra vafphanr hồi nhé.
cảm ơn bạn rất rất nhiều. mình đã làm và in được rồi. Mình có 1 vấn đề phát sinh nữa là ubnd quận phát giấy in thẻ cử tri trên mẫu giấy a6, mình phải in trên giấy đó. vậy trong phần khai báo mình sửa số cột, thẻ/trang là 1 được không. Cảm ơn bạn
 
Upvote 0
cảm ơn bạn rất rất nhiều. mình đã làm và in được rồi. Mình có 1 vấn đề phát sinh nữa là ubnd quận phát giấy in thẻ cử tri trên mẫu giấy a6, mình phải in trên giấy đó. vậy trong phần khai báo mình sửa số cột, thẻ/trang là 1 được không. Cảm ơn bạn
Chào bạn.

Bạn hoàn toàn có thể sửa số cột theo ý bạn. Tôi viết số cột trên 1 trang in là để sử dụng cho những trường hợp như thế này bạn ah.
 
Upvote 0
Chào bạn "dhn46" mình rất cảm ơn bạn đã Chia sẻ tiện ích "In hàng loạt với dữ liệu có sẵn", trong phần Inform có lăp lại bây giờ trong phần sheet "data", mình dùng bộ lọc Filter cho dòng số 9, mình chọn cột "chức vụ", sau đó lọc chỉ lấy bộ phận "công nhân" để xuất kết quả. Tiếp đó mình dùng Form "in tùy chọn", sau đó minh nhấn Ctr+"chuột trái" để chọn Inputbox, với trường hợp dữ liệu ít là như thế không vấn đề gì, nhưng nếu mà số lượng lớn làm như thế mất thời gian. Bạn co thể giúp minh viết đoạn code để nó bỏ qua không xuất kết quả phần đã Hide do Filter không?
Cảm ơn bạn nhiều
 
Upvote 0
Chào bạn "dhn46" mình rất cảm ơn bạn đã Chia sẻ tiện ích "In hàng loạt với dữ liệu có sẵn", trong phần Inform có lăp lại bây giờ trong phần sheet "data", mình dùng bộ lọc Filter cho dòng số 9, mình chọn cột "chức vụ", sau đó lọc chỉ lấy bộ phận "công nhân" để xuất kết quả. Tiếp đó mình dùng Form "in tùy chọn", sau đó minh nhấn Ctr+"chuột trái" để chọn Inputbox, với trường hợp dữ liệu ít là như thế không vấn đề gì, nhưng nếu mà số lượng lớn làm như thế mất thời gian. Bạn co thể giúp minh viết đoạn code để nó bỏ qua không xuất kết quả phần đã Hide do Filter không?
Cảm ơn bạn nhiều
Chào bạn,

Việc viết Code như vậy không khó, hiện tại tôi chưa áp dụng vào tiện ích. Nếu bạn muốn tìm hiểu thì bạn phải biết sửa Code 1 chút nhé

Tại sub Intuychon bạn thay đoạn

Mã:
    Set Rng = Application.InputBox( _
            "Quet chon vung can in " & _
            vbNewLine & vbNewLine & _
            "Cot A Sheet 'Data'  ", "Chon Code nhan vien de in", Type:=8)
Bằng đoạn code
Mã:
    Set Rng = Range("A6:A" & Range("A65536").End(3).Row).SpecialCells(xlCellTypeVisible)

Như vậy toàn bộ phần bạn Filter sẽ được in, loại bỏ phần không chọn.
 
Upvote 0
Chào bạn "dhn46" mình rất cảm ơn bạn đã Chia sẻ tiện ích "In hàng loạt với dữ liệu có sẵn", trong phần Inform có lăp lại bây giờ trong phần sheet "data", mình dùng bộ lọc Filter cho dòng số 9, mình chọn cột "chức vụ", sau đó lọc chỉ lấy bộ phận "công nhân" để xuất kết quả. Tiếp đó mình dùng Form "in tùy chọn", sau đó minh nhấn Ctr+"chuột trái" để chọn Inputbox, với trường hợp dữ liệu ít là như thế không vấn đề gì, nhưng nếu mà số lượng lớn làm như thế mất thời gian. Bạn co thể giúp minh viết đoạn code để nó bỏ qua không xuất kết quả phần đã Hide do Filter không?
Cảm ơn bạn nhiều
 
Upvote 0
Chào bạn "dhn46" mình rất cảm ơn bạn đã Chia sẻ tiện ích "In hàng loạt với dữ liệu có sẵn", trong phần Inform có lăp lại bây giờ trong phần sheet "data", mình dùng bộ lọc Filter cho dòng số 9, mình chọn cột "chức vụ", sau đó lọc chỉ lấy bộ phận "công nhân" để xuất kết quả. Tiếp đó mình dùng Form "in tùy chọn", sau đó minh nhấn Ctr+"chuột trái" để chọn Inputbox, với trường hợp dữ liệu ít là như thế không vấn đề gì, nhưng nếu mà số lượng lớn làm như thế mất thời gian. Bạn co thể giúp minh viết đoạn code để nó bỏ qua không xuất kết quả phần đã Hide do Filter không?
Cảm ơn bạn nhiều
 
Upvote 0
Chào bạn,

Việc viết Code như vậy không khó, hiện tại tôi chưa áp dụng vào tiện ích. Nếu bạn muốn tìm hiểu thì bạn phải biết sửa Code 1 chút nhé

Tại sub Intuychon bạn thay đoạn

Mã:
    Set Rng = Application.InputBox( _
            "Quet chon vung can in " & _
            vbNewLine & vbNewLine & _
            "Cot A Sheet 'Data'  ", "Chon Code nhan vien de in", Type:=8)
Bằng đoạn code
Mã:
    Set Rng = Range("A6:A" & Range("A65536").End(3).Row).SpecialCells(xlCellTypeVisible)

Như vậy toàn bộ phần bạn Filter sẽ được in, loại bỏ phần không chọn.

Cám own bạn, mình làm thử rồi, nhưng nó vẫn xuất ra 4 thẻ đầu tiên không có giá trị (cái này mình không hiểu lắm)
Minh thử làm cách khác khai thêm biến Rng1 như này thi nó báo "ban khong chon in" mong bạn chỉ giúp.
Thanks!


Set Rng1 = Application.InputBox( _
"Quet chon vung can in " & _
vbNewLine & vbNewLine & _
"Cot A Sheet 'Data' ", "Chon Code nhan vien de in", Type:=8)

Rng = Range1.SpecialCells(xlCellTypeVisible)
 

File đính kèm

Upvote 0
Cám own bạn, mình làm thử rồi, nhưng nó vẫn xuất ra 4 thẻ đầu tiên không có giá trị (cái này mình không hiểu lắm)
Minh thử làm cách khác khai thêm biến Rng1 như này thi nó báo "ban khong chon in" mong bạn chỉ giúp.
Thanks!


Set Rng1 = Application.InputBox( _
"Quet chon vung can in " & _
vbNewLine & vbNewLine & _
"Cot A Sheet 'Data' ", "Chon Code nhan vien de in", Type:=8)

Rng = Range1.SpecialCells(xlCellTypeVisible)

Mình có chút nhầm lẫn tại chỗ màu đỏ, bạn sửa lại 1 chút nhé
Mã:
Set Rng = Range("A[COLOR=#ff0000][B]10[/B][/COLOR]:A" & Range("A65536").End(3).Row).SpecialCells(xlCellTypeVisible)

'-----------------------------
Thực tế cũng không cần đến filter, bạn có thể sort dữ liệu trước rồi chọn in. Một cách đơn giản để không phải sửa Code.
 
Lần chỉnh sửa cuối:
Upvote 0
Chào thầy dhn46,
Trong qua trình thực hiện em có 1 số vấn đề đối với file in form khong lap lại như sau:
- nếu 1 dữ liệu không có hình thì hình đó là hình của file cũ.
- in liên tục thì bị deburg (như hình đính kèm)
- folder anh chỉ chọn được tối đa 2 đường dẫn, có khi chỉ đc 1 (nghĩa là D:\A\B hoặc chỉ được D:\A)
Thầy xem lại giùm em các vấn đề này nha.
 
Lần chỉnh sửa cuối:
Upvote 0
Chào thầy dhn46,
Trong qua trình thực hiện em có 1 số vấn đề đối với file in form khong lap lại như sau:
- nếu 1 dữ liệu không có hình thì hình đó là hình của file cũ.
- in liên tục thì bị deburg (ten_tep = f1.Name)
- folder anh chỉ chọn được tối đa 2 đường dẫn, có khi chỉ đc 1 (nghĩa là D:\A\B hoặc chỉ được D:\A)
Thầy xem lại giùm em các vấn đề này nha.
 
Upvote 0
Chào thầy dhn46,
Trong qua trình thực hiện em có 1 số vấn đề đối với file in form khong lap lại như sau:
- nếu 1 dữ liệu không có hình thì hình đó là hình của file cũ.
- in liên tục thì bị deburg (ten_tep = f1.Name)
- folder anh chỉ chọn được tối đa 2 đường dẫn, có khi chỉ đc 1 (nghĩa là D:\A\B hoặc chỉ được D:\A)
Thầy xem lại giùm em các vấn đề này nha.
Chào bạn,

Tôi đã kiểm tra trên máy của tôi thì không thấy hiện tượng bạn nói.

Bạn có thể đưa 1 ít data, ảnh của bạn để tôi test. Tôi sẽ phản hồi cho bạn.
 
Upvote 0
Đúng là do ít dữ liệu nên nó báo lỗi. giờ em chỉ còn phần chọn folder ảnh thôi thầy, nó chỉ cho tối đa 2 đường dẫn không biết do sao.(làm ở cty nên em k tải file lên được)
 
Upvote 0
Đúng là do ít dữ liệu nên nó báo lỗi. giờ em chỉ còn phần chọn folder ảnh thôi thầy, nó chỉ cho tối đa 2 đường dẫn không biết do sao.(làm ở cty nên em k tải file lên được)
Phần màu đỏ thì tôi không thể giải thích nhé, bởi code đã sai thì sai chứ không có chuyện ít thì lỗi, nhiều thì không.

Phần màu xanh tôi test trên máy tôi vẫn bình thường và ngay trong file mẫu cũng đã có đường dẫn nhiều thư mục con. Nếu bạn không thể sử dụng nút lệnh thì bạn copy đường dẫn vào nhé.
 
Upvote 0
Phần màu đỏ thì tôi không thể giải thích nhé, bởi code đã sai thì sai chứ không có chuyện ít thì lỗi, nhiều thì không.

Phần màu xanh tôi test trên máy tôi vẫn bình thường và ngay trong file mẫu cũng đã có đường dẫn nhiều thư mục con. Nếu bạn không thể sử dụng nút lệnh thì bạn copy đường dẫn vào nhé.

Em cũng thấy vậy, nhưng khi đổi folder khác thì nó chỉ cho ngắn vậy thôi, thầy thử thay đổi thư mục khác xem sao? Em cũng gõ thẳng đường dẫn vào luôn nhưng nó sẽ không hiện hình.
 
Upvote 0
Cảm ơn dhn46. file của bạn rất hay. mình xin có ý kiến . liệu trong 1 sheet có 4 trang ví dụ thì nên có thêm chế độ in ghép mặt trước mặt sau trên một tờ giấy. ví dụ mình chỉ in trang 1 và 2 trên cùng 1 tờ giấy còn trang 3 trên 1 tờ giấy. trang 4 trên 1 tờ giấy thì minh nghĩ file sẽ hoàn thiện hơn
 
Upvote 0
cái này lên thêm lệnh in hai mặt trên cùng một trang giấy nữa thì hay hơn
 
Upvote 0
Cám ơn bạn dhn46 đã chia sẻ thông tin rất hữu ích cho mọi người.
Mình đã ứng dụng được file của bạn.
Nhưng Form mẫu của mình có vấn đề phát sinh thêm phần "Họ tên sử dụng" có nhiều dòng thông tin cần thể thể hiện hết trên Form như trong file và ảnh đính mình kèm, bạn xem giúp mình nhé.
Cám ơn bạn!
 

File đính kèm

Upvote 0
Cảm ơn dhn46. file của bạn rất hay. mình xin có ý kiến . liệu trong 1 sheet có 4 trang ví dụ thì nên có thêm chế độ in ghép mặt trước mặt sau trên một tờ giấy. ví dụ mình chỉ in trang 1 và 2 trên cùng 1 tờ giấy còn trang 3 trên 1 tờ giấy. trang 4 trên 1 tờ giấy thì minh nghĩ file sẽ hoàn thiện hơn
Bạn hoàn toàn có thể thiết lập in 2 mặt qua việc setup máy in.
 
Upvote 0
Cám ơn bạn dhn46 đã chia sẻ thông tin rất hữu ích cho mọi người.
Mình đã ứng dụng được file của bạn.
Nhưng Form mẫu của mình có vấn đề phát sinh thêm phần "Họ tên sử dụng" có nhiều dòng thông tin cần thể thể hiện hết trên Form như trong file và ảnh đính mình kèm, bạn xem giúp mình nhé.
Cám ơn bạn!

Bạn xem file nhé.

In nhiều trường cần có 1 chút thủ thuật để ừng dụng. Tôi có tạo 1 vùng phụ để lấy tham chiếu và giải quyết vấn đề của bạn.
 

File đính kèm

Upvote 0
Bạn xem file nhé.

In nhiều trường cần có 1 chút thủ thuật để ừng dụng. Tôi có tạo 1 vùng phụ để lấy tham chiếu và giải quyết vấn đề của bạn.
Cám ơn bạn rất nhiều.
Bài bạn chia sẻ rất là hữu ích và phù hợp với yêu cầu đa dạng của mọi người.
Riêng trường hợp bài mình đăng thì bạn "hpkhuong" đã chia sẻ rất hay và đúng 100% ý mình yêu cầu. Bạn có thể tham khảo thêm nhé. :)
 

File đính kèm

Upvote 0
Làm ơn giúp em tạo cách in liên tục trong file này với ạ, em có quá nhiều file muốn dùng lệnh in liên tục nên các anh chị làm ơn chỉ giúp em cách tạo file đó với ạ, em có gửi file mẫu kèm theo, em rất mong đc quý anh chị giúp đỡ ạ, em xin chân thành cảm ơn!
 

File đính kèm

Upvote 0
Làm ơn giúp em tạo cách in liên tục trong file này với ạ, em có quá nhiều file muốn dùng lệnh in liên tục nên các anh chị làm ơn chỉ giúp em cách tạo file đó với ạ, em có gửi file mẫu kèm theo, em rất mong đc quý anh chị giúp đỡ ạ, em xin chân thành cảm ơn!
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.
 
Upvote 0
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

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

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
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

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

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

Upvote 0

File đính kèm

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

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

Upvote 0
Cảm ơn bác dhn46, file của bác rất hay và em đã vận dụng được vào để in phiếu lương của công ty.
 
Upvote 0
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.
Chào bạn,

Để sử dụng Textbox thì bạn làm các bước như sau:

1/ Vẽ textbox trong sheet Form
2/ Đặt tên cho textbox đó
3/ Khai báo textbox tại sheet khai báo

Chỉ cần 3 bước này là bạn có thể sử dụng.
 
Upvote 0
Cảm ơn bác dhn46, file của bác rất hay và em đã vận dụng được vào để in phiếu lương của công ty.
Hy vọng tiện ích này hữu dụng với công việc của bạn. Thực tế mình đã sử dụng cái này để in phiếu lương cho công ty, in thẻ nhân viên, thẻ kho, tem sản phẩm, tờ khai BHXH, bảng biểu sản xuất, hợp đồng lao động....
 
Upvote 0
Chào bạn,

Để sử dụng Textbox thì bạn làm các bước như sau:

1/ Vẽ textbox trong sheet Form
2/ Đặt tên cho textbox đó
3/ Khai báo textbox tại sheet khai báo

Chỉ cần 3 bước này là bạn có thể sử dụng.
chổ đặt tên cho text box ở chổ nào bạn, bạn hướng dẫn chổ đặt tên cho texbox giùm
 
Upvote 0
Trong video hướng dẫn tại bài #1 có đề cập tới việc đặt tên cho ảnh, thì text box tương tự. Bạn tham khảo tại link sau
 
Upvote 0
Trong video hướng dẫn tại bài #1 có đề cập tới việc đặt tên cho ảnh, thì text box tương tự. Bạn tham khảo tại link sau
Em thiết kế 1 form trên 1 trang nhưng qua sheet kết quả thì không được 1 form trên 1 trang mà kết quả số thứ tự thứ 2 nó lại nằm ở page1 và page2...... bạn hướng dẫn cách chỉnh theo sheet form là một form trên một trang.
 

File đính kèm

Upvote 0
Em thiết kế 1 form trên 1 trang nhưng qua sheet kết quả thì không được 1 form trên 1 trang mà kết quả số thứ tự thứ 2 nó lại nằm ở page1 và page2...... bạn hướng dẫn cách chỉnh theo sheet form là một form trên một trang.
Hình như bạn chưa hiểu khai niệm trang trên Excel. Tốt nhất bạn hãy tìm hiểu kỹ về bố cục trên trang tính rồi hãy áp dụng.
Đây là kiến thức cơ bản nên nắm bắt bạn ah.

Với việc sử dụng in form như thế này thì bạn hãy chỉnh sheets Form sao cho vừa 1 trang, ẩn dòng từ 1 tới 3 rồi setup trang in, các bài hỏi như thế này tại topic này cũng có và cũng có hồi âm rồi bạn nhé.
 
Upvote 0
Hình như bạn chưa hiểu khai niệm trang trên Excel. Tốt nhất bạn hãy tìm hiểu kỹ về bố cục trên trang tính rồi hãy áp dụng.
Đây là kiến thức cơ bản nên nắm bắt bạn ah.

Với việc sử dụng in form như thế này thì bạn hãy chỉnh sheets Form sao cho vừa 1 trang, ẩn dòng từ 1 tới 3 rồi setup trang in, các bài hỏi như thế này tại topic này cũng có và cũng có hồi âm rồi bạn nhé.
Hi hi cám ơn bạn, mình sửa code của bạn tăng độ rộng của dòng lên, mình chỉnh được rồi bạn ơi.
 
Upvote 0
Video của bạn không có tiếng, xem mãi mà không hiểu cách đặt tên cho texbox như thế nào hết
Bạn kích vào Textbox đã vẽ, phía trên bên trái, dưới thanh công cụ có ô hiển thị (thường hiển thị vị trí ô hiện hành, vùng chọn, chọn name...) sẽ hiển thị tên textbox tại đó. Bạn chỉnh sửa là được.
 
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
in dữ liệu hàng loạt có lập lại của bạn rất hay, chỉ cần thiết kế 1 from, nhưng có hạn chế là nếu dữ liệu khoảng 300 dòng ... Thì in tất cả sẽ bị treo máy, phải in 1 lần vài chục số, xong rồi in tiếp, bạn có thể sửa code nhanh hơn để in tất cả không bị treo máy
 
Upvote 0
in dữ liệu hàng loạt có lập lại của bạn rất hay, chỉ cần thiết kế 1 from, nhưng có hạn chế là nếu dữ liệu khoảng 300 dòng ... Thì in tất cả sẽ bị treo máy, phải in 1 lần vài chục số, xong rồi in tiếp, bạn có thể sửa code nhanh hơn để in tất cả không bị treo máy
Treo có thể do cấu hình máy tính yếu, hoặc do cấu hình máy in yếu (đặc biệt bộ nhớ đệm của máy in) nên không đủ khả năng nhận / lưu trữ và xử lý nhiều lệnh in một lúc (vì VBA chạy lệnh in hàng loạt).
 
Upvote 0
in dữ liệu hàng loạt có lập lại của bạn rất hay, chỉ cần thiết kế 1 from, nhưng có hạn chế là nếu dữ liệu khoảng 300 dòng ... Thì in tất cả sẽ bị treo máy, phải in 1 lần vài chục số, xong rồi in tiếp, bạn có thể sửa code nhanh hơn để in tất cả không bị treo máy
Chào bạn,

Bạn đã sử dụng được tiên ích như vậy là xong bước 1
Bạn đã nói sửa được code tại bài #188 thì bạn cũng có thể sửa code in theo ý của bạn đúng không? Mã mở mà bạn

Riêng với ứng dụng này thì tôi không sửa Code nếu code không lỗi. Bạn in 300 tờ chậm, treo máy nhưng tôi in 1000 tờ không làm sao, Form in của bạn khác của tôi, nếu tất cả mọi người sử dụng đề khác nhau thì không biết sửa bao nhiêu lần, sai mục đích khi tôi thiết kế chức năng. Hy vọng bạn hiểu những gì tôi đã làm.
 
Upvote 0
Chào bạn,

Bạn đã sử dụng được tiên ích như vậy là xong bước 1
Bạn đã nói sửa được code tại bài #188 thì bạn cũng có thể sửa code in theo ý của bạn đúng không? Mã mở mà bạn

Riêng với ứng dụng này thì tôi không sửa Code nếu code không lỗi. Bạn in 300 tờ chậm, treo máy nhưng tôi in 1000 tờ không làm sao, Form in của bạn khác của tôi, nếu tất cả mọi người sử dụng đề khác nhau thì không biết sửa bao nhiêu lần, sai mục đích khi tôi thiết kế chức năng. Hy vọng bạn hiểu những gì tôi đã làm.
tôi sửa code của bạn và in theo form của tôi, nhưng form của tôi có 11 cái texbox, có lẻ vậy nên nó bị treo máy
 
Upvote 0
Treo có thể do cấu hình máy tính yếu, hoặc do cấu hình máy in yếu (đặc biệt bộ nhớ đệm của máy in) nên không đủ khả năng nhận / lưu trữ và xử lý nhiều lệnh in một lúc (vì VBA chạy lệnh in hàng loạt).
máy tính mình dùng i3, vì form có nhiều texbox nên bị treo máy
 
Upvote 0
tôi sửa code của bạn và in theo form của tôi, nhưng form của tôi có 11 cái texbox, có lẻ vậy nên nó bị treo máy
Form in mà có tới 11 text box thì bạn nên xem lại Form của bạn. Tại sao phải sử dụng nhiều TextBox? Có thể giảm số lượng TextBox tối đa là bao nhiều. Excel khi tồn tại quá nhiều Object thì nặng file và chậm.
 
Upvote 0
Form in mà có tới 11 text box thì bạn nên xem lại Form của bạn. Tại sao phải sử dụng nhiều TextBox? Có thể giảm số lượng TextBox tối đa là bao nhiều. Excel khi tồn tại quá nhiều Object thì nặng file và chậm.

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 ạ
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom