happyghost2000
Thành viên chính thức
- Tham gia
- 24/5/08
- Bài viết
- 70
- Được thích
- 6
Xin giúp em tổng họp dữ liệu 2 sheet ONVSUIK , Plan vào Sheet Plan_Stock
Nội dung tổng họp mong muốn
1. tự động điền số thứ tự
2. Các nội dung Line, code , Ten_sp & Giacong có trong Sheet ONVSUIK & Plan thể hiện tất cả trong bảng Plan_Stock
Khi thể hiện : Mỗi sản phẩm phải có 2 dòng ( Plan & Stock )
Nếu số liệu không có 1 trong 2 bảng ONVSUIK , PLAN , thì vẫn hiển thị trong bảng Plan_Stock
Plan : Có thì số , Stock : Không có thì ghi số 0
Ngược lại : Plan không có thì ghi số 0, Stock có thì điền số
Em cũng có làm 1 code bên dưới. Nhưng khi chạy Nó thiếu thông tin của những sp bên bảng Plan. hic. hic
Mong Anh, Chị giúp em code mới. Hoặc sữa dùm em code hiện tại ạ.
Em xin cám ơn rất nhiều.
Nội dung tổng họp mong muốn
1. tự động điền số thứ tự
2. Các nội dung Line, code , Ten_sp & Giacong có trong Sheet ONVSUIK & Plan thể hiện tất cả trong bảng Plan_Stock
Khi thể hiện : Mỗi sản phẩm phải có 2 dòng ( Plan & Stock )
Nếu số liệu không có 1 trong 2 bảng ONVSUIK , PLAN , thì vẫn hiển thị trong bảng Plan_Stock
Plan : Có thì số , Stock : Không có thì ghi số 0
Ngược lại : Plan không có thì ghi số 0, Stock có thì điền số
Em cũng có làm 1 code bên dưới. Nhưng khi chạy Nó thiếu thông tin của những sp bên bảng Plan. hic. hic
Mong Anh, Chị giúp em code mới. Hoặc sữa dùm em code hiện tại ạ.
Em xin cám ơn rất nhiều.
Mã:
Sub CreateMasterTable3()
Dim wsPlan As Worksheet
Dim wsStock As Worksheet
Dim wsMaster As Worksheet
Dim dict As Object
Dim lastRowPlan As Long
Dim lastRowStock As Long
Dim i As Long
Set wsPlan = ThisWorkbook.Worksheets("Plan")
Set wsStock = ThisWorkbook.Worksheets("ONVSUIK")
Set wsMaster = ThisWorkbook.Worksheets("Plan_Stock")
Sheet3.Range("A5:V100000").ClearContents
lastRowPlan = wsPlan.Cells(wsPlan.Rows.Count, 1).End(xlUp).row
lastRowStock = wsStock.Cells(wsStock.Rows.Count, 1).End(xlUp).row
Set dict = CreateObject("Scripting.Dictionary")
For i = 5 To lastRowPlan
dict.Add wsPlan.Cells(i, 1).Value & wsPlan.Cells(i, 2).Value & wsPlan.Cells(i, 3).Value & wsPlan.Cells(i, 4).Value, i
Next i
Dim masterRow As Long
masterRow = 5
For i = 3 To lastRowStock
Dim key As String
key = wsStock.Cells(i, 1).Value & wsStock.Cells(i, 2).Value & wsStock.Cells(i, 3).Value & wsStock.Cells(i, 4).Value ' Sua wsStock = wsPlan
If dict.Exists(key) Then
Dim planRow As Long
planRow = dict(key)
wsMaster.Cells(masterRow, 1).Resize(1, 4).Value = wsStock.Cells(i, 1).Resize(1, 4).Value ' Sua wsStock = wsPlan
wsMaster.Cells(masterRow, 5).Value = "Plan"
wsMaster.Cells(masterRow, 6).Resize(1, 16).Value = wsPlan.Cells(planRow, 6).Resize(1, 16).Value
wsMaster.Cells(masterRow + 1, 5).Value = "Stock"
wsMaster.Cells(masterRow + 1, 6).Resize(1, 16).Value = wsStock.Cells(i, 6).Resize(1, 16).Value
masterRow = masterRow + 2
Else
wsMaster.Cells(masterRow, 1).Resize(1, 4).Value = wsStock.Cells(i, 1).Resize(1, 4).Value
wsMaster.Cells(masterRow, 5).Value = "Plan" ' C?t 5 ch?a ch? "Plan"
wsMaster.Cells(masterRow, 6).Resize(1, 16).Value = 0
wsMaster.Cells(masterRow + 1, 5).Value = "Stock"
wsMaster.Cells(masterRow + 1, 6).Resize(1, 16).Value = wsStock.Cells(i, 6).Resize(1, 16).Value
masterRow = masterRow + 2
End If
Next i
MsgBox "Hoàn thành Plan và Stock!"
End Sub
File đính kèm
Lần chỉnh sửa cuối: