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 SubFile đính kèm
			
				Lần chỉnh sửa cuối: 
			
		
	
								
								
									
	
								
							
							 
	 
	  


 
 
 
 
		
 
 
		 
 
		 
 
		 
 
		 
 
		
 
 
		