Copy dữ liệu từ file dữ liệu dán vào file mẫu khác để in

Liên hệ QC

hcl_pt

Thành viên thường trực
Tham gia
21/10/10
Bài viết
208
Được thích
11
Mong GPE giúp đỡ mình trường hợp này: Có 2 file excel: 1 file Dữ liệu chứa các sheet: mỗi sheet là 1 hộ gia đình, có hộ chỉ có 1 người, có hộ có 2 người, ...có hộ lên tới 12 người (thực tế file này có thể lên tới 50 sheet_50 hộ). Nhưng file này chưa căn chỉnh kích thước lề cho phù hợp để in. Vì vậy mình tạo thêm file thứ 2 làm file Mẫu in (file này đã căn chỉnh lề phù hợp in ra giấy để đóng quyển): file này gồm các sheet tương ứng cho hộ 1 người (sheet1n), hộ 2 người (sheet2n)... hộ 12 người(sheet12n).
- Để in mình làm lần lượt: copy từ file dữ liệu các hộ xem hộ đó có mấy người thì dán vào sheet tương ứng số người của file Mẫu in rồi tiến hành in.
- Vì mình cần in rất nhiều hộ gia đình của các khu khác nhau nên làm thủ công như vậy thật sự lâu. GPE có phương án nào tốt nhất xin chỉ giúp. Xin chân thành cảm ơn!
 
Lần chỉnh sửa cuối:
Mong GPE giúp đỡ mình trường hợp này: Có 2 file excel: 1 file Dữ liệu chứa các sheet: mỗi sheet là 1 hộ gia đình, có hộ chỉ có 1 người, có hộ có 2 người, ...có hộ lên tới 12 người (thực tế file này có thể lên tới 50 sheet_50 hộ). Nhưng file này chưa căn chỉnh kích thước lề cho phù hợp để in. Vì vậy mình tạo thêm file thứ 2 làm file Mẫu in (file này đã căn chỉnh lề phù hợp in ra giấy để đóng quyển): file này gồm các sheet tương ứng cho hộ 1 người (sheet1n), hộ 2 người (sheet2n)... hộ 12 người(sheet12n).
- Để in mình làm lần lượt: copy từ file dữ liệu các hộ xem hộ đó có mấy người thì dán vào sheet tương ứng số người của file Mẫu in rồi tiến hành in.
- Vì mình cần in rất nhiều hộ gia đình của các khu khác nhau nên làm thủ công như vậy thật sự lâu. GPE có phương án nào tốt nhất xin chỉ giúp. Xin chân thành cảm ơn!
bạn thử code này để in nhé, đã test in cutepdf
Sub inphieu()Dim i As Integer
Application.DisplayAlerts = False
Windows("Dulieu.xls").Activate
For i = 1 To Sheets.Count
Sheets(i).Select
lr = ActiveSheet.Application.WorksheetFunction.Max(Range("A1:A100"))
Rows("9:" & lr * 5 + 8).Select
Selection.Copy

Windows("MAU_IN.xls").Activate
Sheets(lr & "n").Select
Rows("9:9").Select
Range("P9").Activate
ActiveSheet.Paste
ActiveSheet.PrintOut

Windows("Dulieu.xls").Activate
Sheets(i).Select
Next
Application.DisplayAlerts = True
End Sub
 
bạn thử code này để in nhé, đã test in cutepdf

Chào lehuong1409,

Hương xem lại File Dulieu có sheets("Sheet1") không có dữ liệu -> lr =0 -> lỗi khi sheets(0).select
File MAU_IN không có sheets("11n") lỗi khi i =11 (sheets(i).select)
p/s: Nếu có dữ liệu rồi sao không chuyển sheet Form in vào chung với File Dulieu (dùng 1 sheet Form thôi), chuyển dữ liệu sang để in.
 
Chào lehuong1409,

Hương xem lại File Dulieu có sheets("Sheet1") không có dữ liệu -> lr =0 -> lỗi khi sheets(0).select
File MAU_IN không có sheets("11n") lỗi khi i =11 (sheets(i).select)
p/s: Nếu có dữ liệu rồi sao không chuyển sheet Form in vào chung với File Dulieu (dùng 1 sheet Form thôi), chuyển dữ liệu sang để in.
e quên mất ạ, em thêm sheet 11n và xóa sheets 1 đi nên quên mất k gửi kèm file :) Bạn ấy đọc bài của anh chắc sẽ xóa ạ. Cảm ơn anh. Mấy cách khắc phục lỗi hoặc bẩy lỗi em vẫn chưa rành lắm. Anh có thể sửa lại cho hoàn thiện đc không ạ?
Chúc anh ngủ ngon
 
Chào lehuong1409,

Hương xem lại File Dulieu có sheets("Sheet1") không có dữ liệu -> lr =0 -> lỗi khi sheets(0).select
File MAU_IN không có sheets("11n") lỗi khi i =11 (sheets(i).select)
p/s: Nếu có dữ liệu rồi sao không chuyển sheet Form in vào chung với File Dulieu (dùng 1 sheet Form thôi), chuyển dữ liệu sang để in.
Dạ, cảm ơn các bạn đã xem bài. Vì các hộ có số người khác nhau nên không dùng chung 1 sheet Form để chuyển dữ liệu sang in được ạ!
 
e quên mất ạ, em thêm sheet 11n và xóa sheets 1 đi nên quên mất k gửi kèm file :) Bạn ấy đọc bài của anh chắc sẽ xóa ạ. Cảm ơn anh. Mấy cách khắc phục lỗi hoặc bẩy lỗi em vẫn chưa rành lắm. Anh có thể sửa lại cho hoàn thiện đc không ạ?
Chúc anh ngủ ngon
Cảm ơn bạn Hương đã giúp đỡ!
- Mong bạn xem giúp mình chỗ này được không ạ: mình làm theo code của bạn thì thấy dữ liệu ở file DULIEU chỉ được copy từ dòng 9 và khi dán dữ liệu vào file MAU_IN thì dòng bị co lên, lề dưới không còn chuẩn nữa.
- Bạn có thể sửa giúp như sau thì tốt quá:
+ Dữ liệu ở file DULIEU được copy từ dòng 1 trở xuống (vì các hộ khác nhau nên dữ liệu ở 3 dòng đầu của các hộ là khác nhau) và khi dán vào file MAU_IN thì định dạng kích thước căn lề ban đầu của file MAU_IN không được thay đổi ( vì file MAU_IN đã được chỉnh kích thước căn lề chuẩn từ đầu để in).
- Xin cảm ơn bạn!
 
Lần chỉnh sửa cuối:
Bạn sửa dòng
thành
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Dòng 1 thì bạn sửa chỗ số 9 tại dòng này
Rows("9:" & lr * 5 + 8).Select
và dòng này
Nhớ xoá sheets 1 và thêm sheet 11n như anh Befaint bảo nhé
 
Bạn sửa dòng

thành

Dòng 1 thì bạn sửa chỗ số 9 tại dòng này

và dòng này

Nhớ xoá sheets 1 và thêm sheet 11n như anh Befaint bảo nhé
Vâng cảm ơn bạn! Nếu muốn in từ hộ bao nhiêu đến hộ bao nhiêu thì mình sửa lệnh chỗ nào bạn: ví dụ mình muốn in từ hộ 5 đến hộ 8 chẳng hạn? (để chủ động trong quá trình in ấn). XIn cảm ơn rất nhiều!
 
Web KT

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

Back
Top Bottom