Chèn thêm dòng có điều kiện và tính tổng và lọc ra những dữ liệu cần xử lý với Macro

phuongla83

Sơ cấp
Chào các anh, chi.

Mình có file Excel được viết Macro tính tổng sản lượng mỗi công đoạn của mỗi chuyền mày. Tự động chèn thêm dòng và tính tổng số lượng của mỗi công đoạn.
Nhờ các anh chị viết thêm dùm mình, lọc ra những công đoạn đã nhập với số lượng lớn hơn số lượng cho phép và tính ra con số trồi là bao nhiêu.
Chi tiết xin vui lòng xem file đính kèm.

Mình có 8 chuyền may, có cách nào một Macro sẽ dùng được cho tất cả các file excel chứa dữ liệu gốc không ?
Xem file gốc đính kèm.
Các file gốc lần lược cho các chuyền từ 1 đến 8 giống cấu trúc như nhau.

Cám ơn.
 

Đính kèm

Sub them()
Dim ws As Worksheet, quote As Long, i As Long, d As Long, e As Long
Set ws = Sheets("Data")
ws.Select
quote = ws.Range("J2")
ws.AutoFilterMode = False
i = Range("G" & Rows.Count).End(xlUp).Row
Columns("F:I").Select
Selection.AutoFilter Field:=1, Criteria1:=""
Selection.AutoFilter Field:=4, Criteria1:=">=" & quote
Range("F2:I" & i).SpecialCells(xlCellTypeVisible).Copy
Range("O1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
ws.AutoFilterMode = False
d = Range("R" & Rows.Count).End(xlUp).Row
For e = 1 To d
ws.Range("K" & e + 1) = Right(Range("P" & e), 2)
ws.Range("L" & e + 1) = Range("R" & e) - quote
Next e
Columns("O:R").Delete
End Sub
:D mình mới tập tành VBA nên co lẽ hơi thủ công tý. Sub trông hoa mắt nhưng cũng dễ sử dụng thôi bạn.
Bạn chỉ việc copy sub này vào cùng module với sub trên rồi thêm dòng lệnh: call them() trước cụm từ End Sub của bạn là đc.
 
Sửa lần cuối:
Sub them()
Dim ws As Worksheet, quote As Long, i As Long, d As Long, e As Long
Set ws = Sheets("Data")
ws.Select
quote = ws.Range("J2")
ws.AutoFilterMode = False
i = Range("G" & Rows.Count).End(xlUp).Row
Columns("F:I").Select
Selection.AutoFilter Field:=1, Criteria1:=""
Selection.AutoFilter Field:=4, Criteria1:=">=" & quote
Range("F2:I" & i).SpecialCells(xlCellTypeVisible).Copy
Range("O1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
ws.AutoFilterMode = False
d = Range("R" & Rows.Count).End(xlUp).Row
For e = 1 To d
ws.Range("K" & e + 1) = Right(Range("P" & e), 2)
ws.Range("L" & e + 1) = Range("R" & e) - quote
Next e
Columns("O:R").Delete
End Sub
:D mình mới tập tành VBA nên co lẽ hơi thủ công tý. Sub trông hoa mắt nhưng cũng dễ sử dụng thôi bạn.
Bạn chỉ việc copy sub này vào cùng module với sub trên rồi thêm dòng lệnh: call them() trước cụm từ End Sub của bạn là đc.
Cám ơn bạn nhiều lắm. Mình đang test có gì bạn giúp đỡ mình nha
 
Mình có 8 chuyền may, có cách nào một Macro sẽ dùng được cho tất cả các file excel chứa dữ liệu gốc không ?
Các file gốc lần lược cho các chuyền từ 1 đến 8 giống cấu trúc như nhau.
Cám ơn.
Bạn có thể nghiên cứu videos này để giải quyết vấn đề của bạn.
 
Back
Top