Nhờ các bạn tìm lỗi và chỉnh sửa code autofilter, định dạng và in toàn bộ

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

vuha

Thành viên hoạt động
Tham gia
28/4/08
Bài viết
159
Được thích
34
Tôi muốn in lần lượt sổ chi tiết từng hàng hoá 1 theo danh mục hàng hoá nhưng chỉ in các hàng hoá có phát sinh trong năm và trước khi in thì lọc theo cột diễn giải nonblanks và định dạng từ dòng 17 trở đi là autofit rồi mới in. Tôi đã từng hỏi câu hỏi này nhưng chưa ai giúp tôi hoàn thiện cả, bác boyxin có gợi ý và tôi đã ghép lại thành code trong file đính kèm nhưng khi tôi click button thì báo lỗi 1004, tôi chọn debug thì highlight tại dòng như hình trong file word đính kèm. Mong các bạn giúp tôi gấp với. Thanks.
 

File đính kèm

Tôi muốn in lần lượt sổ chi tiết từng hàng hoá 1 theo danh mục hàng hoá nhưng chỉ in các hàng hoá có phát sinh trong năm và trước khi in thì lọc theo cột diễn giải nonblanks và định dạng từ dòng 17 trở đi là autofit rồi mới in. Tôi đã từng hỏi câu hỏi này nhưng chưa ai giúp tôi hoàn thiện cả, bác boyxin có gợi ý và tôi đã ghép lại thành code trong file đính kèm nhưng khi tôi click button thì báo lỗi 1004, tôi chọn debug thì highlight tại dòng như hình trong file word đính kèm. Mong các bạn giúp tôi gấp với. Thanks.

Sheet [So Chi Tiet Hang hoa], cột nào quy định mã hàng để filter vậy Bạn!?
 
Upvote 0
Tôi không rõ lắm về công việc của bạn, nhưng để sửa lỗi thì bạn copy đoạn code sau và thay vào code của bạn:
Mã:
Sub Button20_Click()
Dim rng As Range, clls As Range
    Set rng = Range(Sheet1.[b11], Sheet1.[b65535].End(xlUp))
    For Each clls In rng
        [e8] = clls.Value
        Range("e13").Select
        Selection.AutoFilter field:=5, Criteria1:="<>"
        If [e65535].End(xlUp).Row > 16 Then
            Rows("17:17").Select
            Range("a17").Activate
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Rows.AutoFit
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, collate:=True
            Selection.AutoFilter field:=5
        End If
    Next
End Sub

Chỉ là một số sai sót về chính tả, tôi đã sửa lại để chạy và không lỗi, còn công việc thế nào thì tùy đánh giá của bạn.
 
Upvote 0
Sheet [So Chi Tiet Hang hoa], cột nào quy định mã hàng để filter vậy Bạn!?
Ô E8 là ô để nhập mã hàng, mã hàng này lần lượt thay đổi theo danh mục hàng hoá cho trước bên sheet danh mục hàng hoá (Cột B) còn với tất cả các mã hàng thì đều filter theo cột diễn giải bạn ạ
 
Upvote 0
Ô E8 là ô để nhập mã hàng, mã hàng này lần lượt thay đổi theo danh mục hàng hoá cho trước bên sheet danh mục hàng hoá (Cột B) còn với tất cả các mã hàng thì đều filter theo cột diễn giải bạn ạ
Bạn thử cho một ít số liệu vào đó rồi thử filter bằng tay để tôi xem thử xem! Bạn nhập mã hàng vào cột diễn giải? Mỗi dòng là 1 mã hàng kèm chi tiết xuất nhập ??
 
Upvote 0
Bạn thử cho một ít số liệu vào đó rồi thử filter bằng tay để tôi xem thử xem! Bạn nhập mã hàng vào cột diễn giải? Mỗi dòng là 1 mã hàng kèm chi tiết xuất nhập ??
Nếu lọc, định dạng và in thủ công thì mã hàng sẽ được nhập vào ô E8, khi đó vùng dữ liệu trong sổ chi tiết này được liên kết từ 1 sheet dữ liệu khác (giả sử là data), căn cứ theo mã hàng được nhập ở ô E8 mà mỗi dòng trong sổ chi tiết là 1 dòng tương ứng với sheet data và vì thế có dòng là nhập hoặc xuất (nonblanks) nhưng có dòng không phải là nhập xuất (blanks) nên phải lọc để in. Nhưng quan trọng là tôi muốn khi in xong mã hàng này thì lại tự động với mã hàng tiếp theo cho đến hết danh mục hàng hoá ở sheet bên. Mong bạn tận tình chỉ giúp. Thanks.
To Hoangvuluan: Cảm ơn bạn, tôi đã sửa và chạy được rồi nhưng bạn có cách nào để quá trình thực hiện lệnh nhanh hơn không chẳng hạn như thêm code vào để khi thực hiện lệnh không xuất hiện hộp thoại thể hiện trạng thái in (...printing page 2 of 4 ...) được không?
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu lọc, định dạng và in thủ công thì mã hàng sẽ được nhập vào ô E8, khi đó vùng dữ liệu trong sổ chi tiết này được liên kết từ 1 sheet dữ liệu khác (giả sử là data), căn cứ theo mã hàng được nhập ở ô E8 mà mỗi dòng trong sổ chi tiết là 1 dòng tương ứng với sheet data và vì thế có dòng là nhập hoặc xuất (nonblanks) nhưng có dòng không phải là nhập xuất (blanks) nên phải lọc để in. Nhưng quan trọng là tôi muốn khi in xong mã hàng này thì lại tự động với mã hàng tiếp theo cho đến hết danh mục hàng hoá ở sheet bên. Mong bạn tận tình chỉ giúp. Thanks.
Bạn xem thử file đính kèm xem sao nhé! Code sau để làm việc này:
PHP:
Sub FilterAndPrint()
On Error Resume Next
Dim MaxItemRow As Long, MaxDataRow As Long
MaxItemRow = Sheets("DMHH").[A65536].End(xlUp).Row
MaxDataRow = Sheets("SoChiTietHH").[E65536].End(xlUp).Row
For i = 1 To MaxItemRow
Range("ItemCode") = Sheets("DMHH").Cells(i + 10, 2).Value
With Sheets("SoChiTietHH").Range("A17:P" & MaxDataRow)
.Columns.AutoFit
.AutoFilter Field:=5, Criteria1:=Range("ItemCode").Value
End With
ActiveSheet.PrintOut Copies:=1, collate:=True
Next i
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom