Tự động điền thông tin vào file master từ các file data khác nhau

Liên hệ QC

superduper

Thành viên mới
Tham gia
4/7/18
Bài viết
2
Được thích
1
Dear các bác
Như tiêu đề em có đăng, hiện tại hàng tháng em thuường hay phải tổng hợp dữ liệu từ nhiều nguồn vào thành 1 file master bằng cách copy paste thủ công. Do muốn giảm bớt thời gian copy nên em muốn hỏi các bác cách sử dụng macro để có thể tự động điền dữ liệu mà không cần phải mở file. Em có đính kèm 3 file làm ví dụ như sau:
- File master có 2 sheet 1 và 2
- File data 1 và 2 tương ứng cần điền vào 2 sheet của file master

Vậy em muốn hỏi các bác:
- Đối với Sheet 1, do dữ liệu theo dõi có ngày có, ngày không. Vậy có đoạn code nào trong macro có thể điền dữ liệu tương tự như vlookup theo từng ngày tương ứng mà không cần mở file được không ?
- Đối với Sheet 2, dữ liệu vẫn được theo dõi theo từng ngày, yêu cầu vẫn giống như Sheet 1 nhưng em muốn lấy số sum cả tháng liệu có được không

Em mong nhận được sự giúp đỡ của các bác. Mong các bác tạo điều kiện để em có thể hoàn thành công việc một cách nhanh nhất ạ. Em xin cám ơn các bác
 

File đính kèm

  • Data 1.xlsx
    8.3 KB · Đọc: 34
  • Data 2.xlsx
    9.8 KB · Đọc: 23
  • Master.xlsx
    9.4 KB · Đọc: 24
Dear các bác
Như tiêu đề em có đăng, hiện tại hàng tháng em thuường hay phải tổng hợp dữ liệu từ nhiều nguồn vào thành 1 file master bằng cách copy paste thủ công. Do muốn giảm bớt thời gian copy nên em muốn hỏi các bác cách sử dụng macro để có thể tự động điền dữ liệu mà không cần phải mở file. Em có đính kèm 3 file làm ví dụ như sau:
- File master có 2 sheet 1 và 2
- File data 1 và 2 tương ứng cần điền vào 2 sheet của file master

Vậy em muốn hỏi các bác:
- Đối với Sheet 1, do dữ liệu theo dõi có ngày có, ngày không. Vậy có đoạn code nào trong macro có thể điền dữ liệu tương tự như vlookup theo từng ngày tương ứng mà không cần mở file được không ?
- Đối với Sheet 2, dữ liệu vẫn được theo dõi theo từng ngày, yêu cầu vẫn giống như Sheet 1 nhưng em muốn lấy số sum cả tháng liệu có được không

Em mong nhận được sự giúp đỡ của các bác. Mong các bác tạo điều kiện để em có thể hoàn thành công việc một cách nhanh nhất ạ. Em xin cám ơn các bác
Bạn xem đúng như yêu cầu của mình chưa.
 

File đính kèm

  • GetData.rar
    30.3 KB · Đọc: 119
Mình cũng có nhu cầu tương tự, nhưng 2 sheet data và sheet master cùng trên 1 file, cập nhật xong dữ liệu ở sheet 1 sẽ tiếp tục cập nhật dữ liệu ở sheet 2 vào master sheet,
bạn hỗ trợ sửa lại code giúp nhé. Cảm ơn nhiều
 
Mình cũng có nhu cầu tương tự, nhưng 2 sheet data và sheet master cùng trên 1 file, cập nhật xong dữ liệu ở sheet 1 sẽ tiếp tục cập nhật dữ liệu ở sheet 2 vào master sheet,
bạn hỗ trợ sửa lại code giúp nhé. Cảm ơn nhiều
Nên đưa file mẫu đi bạn.
 

File đính kèm

  • file mau.xlsm
    3.6 MB · Đọc: 13
  • A4A8.xlsx
    4.6 MB · Đọc: 6
  • LastDay.xlsx
    4.1 MB · Đọc: 6
  • LastWeek.xlsx
    4 MB · Đọc: 5
  • PKD.xlsx
    4.6 MB · Đọc: 5
  • TTPP.xlsx
    4.6 MB · Đọc: 5
  • Nhu cau.docx
    13.5 KB · Đọc: 16
Nhờ bác xem nội dung trong file word và giúp nhé, Cảm ơn
Bài đã được tự động gộp:
Bạn nêu mục đích muốn trợ giúp cho bạn đi, nhìn thấy cấu trúc các sheet trong file mẫu đâu giống nhau, tổng hợp qua sheet list-toolDH dựa vào cột nào tôi nhìn mà chưa hiểu.
 
Nội dung trợ giúp ở trong file nhucau.doc
Hình thức cập nhật dữ liệu là copy dữ liệu trong các file chuyển vào file mau chứ không phải tổng hợp theo cột nào cả
 
Nội dung trợ giúp ở trong file nhucau.doc
Hình thức cập nhật dữ liệu là copy dữ liệu trong các file chuyển vào file mau chứ không phải tổng hợp theo cột nào cả
Nhu cầu 1, 2 và 3 thì dùng code này, còn nhu cầu 4 không hiểu, bạn nói cùng cấu trúc mà tôi thấy sheet list-toolDH có rất nhiều cột, trong khi đó 2 file TTPP và PKD có số cột ít hơn rất nhiều, ngồi dò các cột có khớp với nhau hay không qua hết cả mắt, bạn tự phát triển code này cho file của bạn nhé.
Mã:
Public Sub TongHopFiles()
Application.ScreenUpdating = False
    Dim i As Long
    Dim Arr(), sArr(), dArr()
    Dim wb As Workbook, Wt As Workbook

        Set Wt = ThisWorkbook
        Arr = Array("A4A8", "LastDay", "LastWeek")
        dArr = Array("A2:V", "A2:T", "A2:T")
        For i = 0 To 2
            With Wt.Sheets(Arr(i))
                .Range("A2:X" & (.Range("A65000").End(xlUp).Row + 2)).ClearContents
                Set wb = Workbooks.Open(ThisWorkbook.Path & "\Update\" & Arr(i) & ".xlsx")
                    sArr = wb.Sheets(1).Range(dArr(i) & wb.Sheets(1).[A100000].End(3).Row).Value
                    wb.Close False
                .Range("A2").Resize(UBound(sArr), UBound(sArr, 2)) = sArr
                If i = 2 Then
                    sArr = .Range("C2:C" & (UBound(sArr) + 1)).Value
                    .Range("C2:C" & (UBound(sArr) + 1)).Value = .Range("D2:D" & (UBound(sArr) + 1)).Value
                    .Range("D2:D" & (UBound(sArr) + 1)) = sArr
                End If
            End With
            
        Next i
    Application.ScreenUpdating = True
    MsgBox "Da thuc hien xong"
End Sub
 
Cám ơn bác,

Để em thử lại xem,
Bài đã được tự động gộp:

OK bác,

If i = 2 Then
sArr = .Range("C2:C" & (UBound(sArr) + 1)).Value
.Range("C2:C" & (UBound(sArr) + 1)).Value = .Range("D2:D" & (UBound(sArr) + 1)).Value
.Range("D2:D" & (UBound(sArr) + 1)) = sArr
End If
đoạn này i cả 1 và 2 bác nhé (lastDay và LastWeek là giống nhau)

Còn đối với list-toolDH, bác cập nhật cho em các cột từ A đến AC (29 cột) có thay đổi thứ tự cột F và G lên đầu tiên
Chuyển hết dữ liệu ở TTPP xong chuyển PKD (vào dòng kế tiếp) sau đó xóa các dòng dữ liệu cũ dư ra

Nhờ bác giúp cho trọn nhé
Cảm ơn nhiều
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom