In hàng loạt in cả dòng ẩn (1 người xem)

Liên hệ QC

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

Vàng A Súp

Thành viên hoạt động
Tham gia
21/12/19
Bài viết
149
Được thích
81
Em chào các anh/ chị .
em có 1 file excel có đặt VBA in hàng loạt. Trong 1 số hợp đồng, phụ lục của em có 1 số dòng không có dữ liệu và em dùng VBA để ẩn. Nhưng khi em in hàng loạt nếu in 1-2 hợp đồng, phụ lục không sao, in nhiều sẽ in cả những dòng em đã ẩn. Cụ thể nhất là ở Sheet : "Phu_Luc 2" lấy thông tin từ Sheet "Dau_Vao", em đánh dấu "x" vào ô nào không có dữ liệu . Khi sang sheet "Phu_Luc 2" em đặt VBA là ô nào có dấu x sẽ tự động ẩn.
Em xin gửi file của em lên để nhờ anh/ chị giúp ạ. Mật khẩu sheet là " cc " ạ
Kính mong được sự giúp đỡ và chỉ bảo của các anh/ chị. Em xin chân thành cảm ơn.
bbb.jpgaaaaaa.jpg
 

File đính kèm

Gợi ý: Dùng VBA nhân bản sheet cần in, xóa hết các dòng ẩn đó đi rồi in
 
Macro ẩn dòng là Spinner1_Change đúng không?
Macro Spinner1_Change được gán cho Spinner 2 nên khi bạn click vào Spinner 2 thì macro Spinner1_Change được kích hoạt, dòng trống được ẩn đi.
Còn ở macro inhangloat đâu có dòng nào gọi macro Spinner1_Change hay sự kiện nào kích hoạt macro Spinner1_Change đâu. Spinner1_Change không được thực thi thì dòng trống vẫn còn đó không được ẩn đi là đúng rồi.
 
Gợi ý: Dùng VBA nhân bản sheet cần in, xóa hết các dòng ẩn đó đi rồi in
hì, hì, như vậy lâu và mất công quá bác ạ. Bác nghiên cứu giúp em với bác ơi.
Bài đã được tự động gộp:

Macro ẩn dòng là Spinner1_Change đúng không?
Macro Spinner1_Change được gán cho Spinner 2 nên khi bạn click vào Spinner 2 thì macro Spinner1_Change được kích hoạt, dòng trống được ẩn đi.
Còn ở macro inhangloat đâu có dòng nào gọi macro Spinner1_Change hay sự kiện nào kích hoạt macro Spinner1_Change đâu. Spinner1_Change không được thực thi thì dòng trống vẫn còn đó không được ẩn đi là đúng rồi.
bác giúp em với được không ạ. Em dốt VBA lắm ạ, mấy code kia là toàn các anh chị trên diễn đàn làm giúp em đấy ạ
 
hì, hì, như vậy lâu và mất công quá bác ạ. Bác nghiên cứu giúp em với bác ơi.
Bài đã được tự động gộp:


bác giúp em với được không ạ. Em dốt VBA lắm ạ, mấy code kia là toàn các anh chị trên diễn đàn làm giúp em đấy ạ
Địa chỉ output và input là gì vậy bạn? Phải nhập gì trong hộp thoại?
 
Địa chỉ output và input là gì vậy bạn? Phải nhập gì trong hộp thoại?
dạ ouput là số Hợp đồng, input là số lượng hợp đồng ạ. Ví dụ ở sheet Phu_Luc 2: ấn vào in hàng loạt báo output, thì ấn vào ô " X2" . input thì ấn kéo từ "X5:X19 " ạ
 
dạ ouput là số Hợp đồng, input là số lượng hợp đồng ạ. Ví dụ ở sheet Phu_Luc 2: ấn vào in hàng loạt báo output, thì ấn vào ô " X2" . input thì ấn kéo từ "X5:X19 " ạ
Tôi chưa can thiệp sâu lắm về code nhưng bạn xem thế này ổn chưa?
 

File đính kèm

bác ơi chưa được bác ạ, em ấn Spinner chuyển hợp đồng thì ẩn hết các dòng luôn ạ. in ra thì bị ẩn hết luôn ý bác ạ
Tôi sửa code in hàng loạt, bạn chép code qua file bạn chạy có ổn không thôi. còn trong file tôi gửi, tôi có sửa Spinner3_Change tại Module4

Cái code Spinner đó không biết để làm gì, chạy không có tác dụng gì hết bởi câu lệnh này tôi thấy quá lạ: Rng.EntireRow.Hidden = Rng.Value = "x" (có 2 dấu bằng?)

Bạn muốn dùng file tôi gửi thì trả lại nguyên trạng cho Spinner3_Change như file gốc.
 
Tôi sửa code in hàng loạt, bạn chép code qua file bạn chạy có ổn không thôi. còn trong file tôi gửi, tôi có sửa Spinner3_Change tại Module4

Cái code Spinner đó không biết để làm gì, chạy không có tác dụng gì hết bởi câu lệnh này tôi thấy quá lạ: Rng.EntireRow.Hidden = Rng.Value = "x" (có 2 dấu bằng?)

Bạn muốn dùng file tôi gửi thì trả lại nguyên trạng cho Spinner3_Change như file gốc.
Bác ơi, em mò mãi vẫn không được bác ạ, khi em in ra vẫn chỉ được mỗi hợp đồng số 1,
code Spinner :Rng.EntireRow.Hidden = Rng.Value = "x" (có 2 dấu bằng?) là bác Batman viết cho em ạ, em chỉ đổi số " 0 " thành "x" thôi ạ
bác xem giúp em với bác nhé. em chân thành cảm ơn bác nhiều ạ
 
Bác ơi, em mò mãi vẫn không được bác ạ, khi em in ra vẫn chỉ được mỗi hợp đồng số 1,
code Spinner :Rng.EntireRow.Hidden = Rng.Value = "x" (có 2 dấu bằng?) là bác Batman viết cho em ạ, em chỉ đổi số " 0 " thành "x" thôi ạ
bác xem giúp em với bác nhé. em chân thành cảm ơn bác nhiều ạ
Tôi không biết trình tự thế nào mà dò dẫm mất công quá nên bạn chịu khó chạy code dò dẫm từng bước (step by step) vậy!

Còn không thì nhờ bác ấy xem, sửa lại.
 
Tôi không biết trình tự thế nào mà dò dẫm mất công quá nên bạn chịu khó chạy code dò dẫm từng bước (step by step) vậy!

Còn không thì nhờ bác ấy xem, sửa lại.
dạ vâng ạ, hic, hic, bác có VBA nào in hàng loạt không cho em xin được không ạ. VBA in hàng loạt này em lấy trên diễn đàn. Em nghĩ nguyên nhân là VBA đó không áp dụng được cho file excel này của em bác ạ
 
dạ vâng ạ, hic, hic, bác có VBA nào in hàng loạt không cho em xin được không ạ. VBA in hàng loạt này em lấy trên diễn đàn. Em nghĩ nguyên nhân là VBA đó không áp dụng được cho file excel này của em bác ạ
Như file này, tôi nhìn vào thấy rối nùi, cũng không muốn dò xem cần in gì thì làm sao bạn tùy biến để dùng được.
Bạn muốn in gì thì thiết kế lại file theo mẫu biểu của bạn, rõ ràng gọn gàng, chỉ rõ lấy dữ liệu ở đâu để in và in thế nào. Sau đó in bằng tay ra .pdf tải lên cho mọi người biết là bạn muốn in ra như thế đấy.

Có vậy mới làm chứ với file này thì chắp vá quá, không làm nữa.
 
Như file này, tôi nhìn vào thấy rối nùi, cũng không muốn dò xem cần in gì thì làm sao bạn tùy biến để dùng được.
Bạn muốn in gì thì thiết kế lại file theo mẫu biểu của bạn, rõ ràng gọn gàng, chỉ rõ lấy dữ liệu ở đâu để in và in thế nào. Sau đó in bằng tay ra .pdf tải lên cho mọi người biết là bạn muốn in ra như thế đấy.

Có vậy mới làm chứ với file này thì chắp vá quá, không làm nữa.
dạ vâng ạ, em sẽ làm lại file rồi bác giúp em với nhé. hì hì.
 
Như file này, tôi nhìn vào thấy rối nùi, cũng không muốn dò xem cần in gì thì làm sao bạn tùy biến để dùng được.
Bạn muốn in gì thì thiết kế lại file theo mẫu biểu của bạn, rõ ràng gọn gàng, chỉ rõ lấy dữ liệu ở đâu để in và in thế nào. Sau đó in bằng tay ra .pdf tải lên cho mọi người biết là bạn muốn in ra như thế đấy.

Có vậy mới làm chứ với file này thì chắp vá quá, không làm nữa.
Dạ đây là file gốc của em ạ.
Em có Sheets " Hop_Dong". Tại dòng 39:42 của hợp đồng 1-11 sẽ có dữ liệu, nhưng từ 12-14 sẽ không có dữ liệu, và em muốn ẩn đi và khi in cũng bị ẩn.
Tại Sheets " Phu_Luc 2" , em muốn cột " J " nếu dòng nào có ký tự " x " sẽ ẩn dòng và khi in cũng bị ẩn
Em muốn khi in hàng loạt có chức năng in từ hợp đồng bao nhiêu đến bao nhiêu: ví dụ có 14 hợp đồng nhưng em chỉ cần in 10 hợp đồng
em xin nhờ các bác @Maika8008 @SA_DQ @xuongrongdat @Hoàng Tuấn 868 @batman1 @befaint
...vv..vv giúp em với ạ. Em xin chân thành cám ơn ạ
 

File đính kèm

Lần chỉnh sửa cuối:
1/ Ở Phụ lục 2: tại sao với hợp đồng thứ 3 (và 5) thì J15 J16 lại đánh dấu x? Thế đánh dấu x có quy tắc gì?
2/ Khi in thì in cái gì (sheet nào)?
 
1/ Ở Phụ lục 2: tại sao với hợp đồng thứ 3 (và 5) thì J15 J16 lại đánh dấu x? Thế đánh dấu x có quy tắc gì?
2/ Khi in thì in cái gì (sheet nào)?
Dạ phụ lục 2 có 1 số dòng ( công trình ) em không thuê người dong dẫn nên em đánh dấu " x " là để ẩn đi. Vì là phụ lục và phụ lục 2 lấy chung dữ liệu từ đầu vào,
+ Sheet "phụ lục" gồm hợp đồng về việc nạo vét, phát dọn, dong dẫn và nghiệm thu nạo vét, phát dọn.
+ Sheet "phụ lục 2" là nghiệm thu dong dẫn thôi ạ
Khi in là em in hết các sheet bác ạ
 
Dạ phụ lục 2 có 1 số dòng ( công trình ) em không thuê người dong dẫn nên em đánh dấu " x " là để ẩn đi. Vì là phụ lục và phụ lục 2 lấy chung dữ liệu từ đầu vào,
+ Sheet "phụ lục" gồm hợp đồng về việc nạo vét, phát dọn, dong dẫn và nghiệm thu nạo vét, phát dọn.
+ Sheet "phụ lục 2" là nghiệm thu dong dẫn thôi ạ
Khi in là em in hết các sheet bác ạ
Vậy trước đây bạn muốn đánh dấu x theo quy tắc gì? (từ đó mới ra đời cái thớt này)
 
Vậy trước đây bạn muốn đánh dấu x theo quy tắc gì? (từ đó mới ra đời cái thớt này)
Dạ chả quy tắc gì đâu bác ạ. Công trình nào không có dong dẫn thì em đánh x để đánh dấu là không có dong dẫn và cần ẩn hàng đó đi thôi ạ.
Ví dụ tại sheet "đầu vào" ạ. Cột M63( là chi tiết của M62 của công trình Tông Pắng). Không có dữ liệu công dong dẫn ạ. Em đánh x ở C62+C63 là 2 hàng này cẩn ẩn khi sang sheet phụ lục 2 ( là phụ lục nghiệm thu dong dẫn )
Nhưng công trình Tông Pắng này chỉ không có dong dẫn còn công nạo vét, phát dọn vẫn có nên vẫn sẽ xuất hiện tại sheet "phụ lục" ( là hợp đồng và nghiệm thu nạo vét phát dọn)
1 bộ hồ sơ em sẽ gồm :
1. hợp đồng + phụ lục hợp đồng ( hợp đồng gồm cả nạo vét, phát dọn + dong dẫn ).
2. Nghiệm thu nạo vét, phát dọn + phụ lục nghiệm thu.
3. Nghiệm thu dong dẫn + phụ lục nghiệm thu dong dẫn
4. Bảng kê thanh toán
5. Tổng hợp công trình
 
Dạ chả quy tắc gì đâu bác ạ. Công trình nào không có dong dẫn thì em đánh x để đánh dấu là không có dong dẫn và cần ẩn hàng đó đi thôi ạ.
Ví dụ tại sheet "đầu vào" ạ. Cột M63( là chi tiết của M62 của công trình Tông Pắng). Không có dữ liệu công dong dẫn ạ. Em đánh x ở C62+C63 là 2 hàng này cẩn ẩn khi sang sheet phụ lục 2 ( là phụ lục nghiệm thu dong dẫn )
Nhưng công trình Tông Pắng này chỉ không có dong dẫn còn công nạo vét, phát dọn vẫn có nên vẫn sẽ xuất hiện tại sheet "phụ lục" ( là hợp đồng và nghiệm thu nạo vét phát dọn)
1 bộ hồ sơ em sẽ gồm :
1. hợp đồng + phụ lục hợp đồng ( hợp đồng gồm cả nạo vét, phát dọn + dong dẫn ).
2. Nghiệm thu nạo vét, phát dọn + phụ lục nghiệm thu.
3. Nghiệm thu dong dẫn + phụ lục nghiệm thu dong dẫn
4. Bảng kê thanh toán
5. Tổng hợp công trình
Chứ còn ẩn dòng mà không ẩn được, mới sinh ra cái thớt này?????
 
Chứ còn ẩn dòng mà không ẩn được, mới sinh ra cái thớt này?????
Vâng ạ. Vấn đề của em chỉ xoay quanh việc sheet hợp đồng từ dòng 39- 42 em đã đặt hàm là hợp đồng nào không có dòng đó thì bằng không. Nhưng không biết cách in hàng loạt thì ẩn
Sheet phụ lục 2 hàng nào mà cột J có dấu x thì bằng không và ẩn khi in hàng loạt bác ạ
 
Chứ còn ẩn dòng mà không ẩn được, mới sinh ra cái thớt này?
bác ơi, nếu như không được bác giúp em sửa code in hàng loạt kia thành xuất hàng loạt được không ạ, Nhưng em lại muốn khi xuất ra bản excel khác sẽ mất công thức ( kiểu dạng coppy - pates Values ). Em có sẵn 2 VAB kia rồi nhưng không biết dán code xóa công thức kia vào chỗ nào
Code xuất bản in hàng loạt
Sub xuat hang loat()

Dim tinhtoan As Variant
Dim manhinh As Boolean
Dim Rng, rng1, rng2 As Range
Dim t1, t2, sh2, sh1, add_rng1 As String
Dim sotrang, k As Integer
Dim she As Sheets

On Error GoTo thoat
manhinh = Application.ScreenUpdating

tinhtoan = Application.Calculation
Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationManual

'---------------------
Set rng1 = Application.InputBox("nhap vao dia chi output", Type:=8)
If rng1.Count <> 1 Then
MsgBox "chon sai so ô, chi duoc chon 1 ô"
Exit Sub
End If

add_rng1 = rng1.Address
'---------------------

Set rng2 = Application.InputBox("nhap vao dia chi input", Type:=8)
Application.ScreenUpdating = False
sotrang = rng2.Count
For Each Rng In rng2
If Rng.EntireRow.Hidden = True Or Rng.Text = "" Then
sotrang = sotrang - 1
End If
Next

'---------------------(1)
'Mo 1 workbook moi
t1 = ActiveWorkbook.Name
sh1 = ActiveSheet.Name
Sheets(sh1).Select
Sheets(sh1).Copy
t2 = ActiveWorkbook.Name
sh2 = ActiveSheet.Name
'---------------------(1)


'---------------------(2)
'tao ra cac sheet
If sotrang > 1 Then
For i = 1 To sotrang - 1
Sheet3.Unprotect "cc"
Application.ScreenUpdating = False
Workbooks(t2).Sheets(sh2).Select
Workbooks(t2).Sheets(sh2).Copy Before:=Sheets(sh2)
Next
End If
'----------------------(2)


'------------------------------(3)
' Lay gia tri tu rng2 thay vao cac sheet
k = 0
For Each Rng In rng2
If Rng.EntireRow.Hidden = False And Rng.Text <> "" Then
k = k + 1
Workbooks(t2).Sheets(k).Range(add_rng1).Value = Rng.Value
End If
Next

Application.Calculation = xlCalculationAutomatic
'------------------------------(3)

Application.ScreenUpdating = manhinh
thoat:
Application.Calculation = tinhtoan
Application.ScreenUpdating = manhinh

End Sub
Code xóa công thức
Range("A1:J71").Select
ActiveWindow.SmallScroll Down:=-84
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("K:T").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
 
bác ơi, nếu như không được bác giúp em sửa code in hàng loạt kia thành xuất hàng loạt được không ạ, Nhưng em lại muốn khi xuất ra bản excel khác sẽ mất công thức ( kiểu dạng coppy - pates Values ). Em có sẵn 2 VAB kia rồi nhưng không biết dán code xóa công thức kia vào chỗ nào
Code xuất bản in hàng loạt

Code xóa công thức
Để từ từ, tôi đang có việc bận chút. Làm từ đầu ổn hơn sửa. Nếu sửa thì tôi đem cái file cũ ra sửa.
 
Dạ chả quy tắc gì đâu bác ạ. Công trình nào không có dong dẫn thì em đánh x để đánh dấu là không có dong dẫn và cần ẩn hàng đó đi thôi ạ.
Ví dụ tại sheet "đầu vào" ạ. Cột M63( là chi tiết của M62 của công trình Tông Pắng). Không có dữ liệu công dong dẫn ạ. Em đánh x ở C62+C63 là 2 hàng này cẩn ẩn khi sang sheet phụ lục 2 ( là phụ lục nghiệm thu dong dẫn )
Nhưng công trình Tông Pắng này chỉ không có dong dẫn còn công nạo vét, phát dọn vẫn có nên vẫn sẽ xuất hiện tại sheet "phụ lục" ( là hợp đồng và nghiệm thu nạo vét phát dọn)
1 bộ hồ sơ em sẽ gồm :
1. hợp đồng + phụ lục hợp đồng ( hợp đồng gồm cả nạo vét, phát dọn + dong dẫn ).
2. Nghiệm thu nạo vét, phát dọn + phụ lục nghiệm thu.
3. Nghiệm thu dong dẫn + phụ lục nghiệm thu dong dẫn
4. Bảng kê thanh toán
5. Tổng hợp công trình
Chốt lại là khi in sheets phụ lục 2 thì từ dòng 32 ngược lên trên các dòng không có dữ liệu sẽ ẩn phải không bạn.
 
Chốt lại là khi in sheets phụ lục 2 thì từ dòng 32 ngược lên trên các dòng không có dữ liệu sẽ ẩn phải không bạn.
Dạ từ dòng 10 đến 32 nếu cột J dòng nào có dấu "x " thì ẩn bác ạ. File excel đầu tiên em đã làm được việc đó. Nhưng khi in lại in cả dòng ẩn ạ
 
Dạ từ dòng 10 đến 32 nếu cột J dòng nào có dấu "x " thì ẩn bác ạ. File excel đầu tiên em đã làm được việc đó. Nhưng khi in lại in cả dòng ẩn ạ
Khi in không cần đánh dấu x mà cứ dòng nào trống thì nó ẩn có được không bạn.
 
Đầu tiên em xin gửi lời Cám ơn chân thành nhất tới bác. Sáng nay em bận quá giờ mới vào xem được thì thấy 0h35 phút bác gửi bài cho em. Thật sự em thấy áy náy vì cảm giác em hành bác quá (@$%@
Bác ơi, bài này được rồi bác in, In chuẩn ý em lắm, với lại cách bác sắp sếp lại spinner đẹp lắm bác ạ
Em Xin chân thành cám ơn bác nhiều lắm ạ :yahoo::yahoo::yahoo:
 
Đầu tiên em xin gửi lời Cám ơn chân thành nhất tới bác. Sáng nay em bận quá giờ mới vào xem được thì thấy 0h35 phút bác gửi bài cho em. Thật sự em thấy áy náy vì cảm giác em hành bác quá (@$%@
Bác ơi, bài này được rồi bác in, In chuẩn ý em lắm, với lại cách bác sắp sếp lại spinner đẹp lắm bác ạ
Em Xin chân thành cám ơn bác nhiều lắm ạ :yahoo::yahoo::yahoo:
Thế là ngon rồi bạn ha --=0 Theo cái kiểu cũ kia nhìn thấy phát sợ. :wacko:
 

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

Back
Top Bottom