Cập nhật dữ liệu từ nhiều file/workbook (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ngoinhahoahong1492

Thành viên hoạt động
Tham gia
27/11/09
Bài viết
172
Được thích
155
Nghề nghiệp
Sales
Em phải cập nhật dữ liệu từ nhiều file/workbook có cùng kết cấu (cập nhật từ sheet đầu tiên: bảng giá nguyên vật liệu của nhiều file/workbook). Việc cập nhật dựa vào mã vật tư mới từ các file/workbook, tất cả thông tin liên quan của mã vật tư mới này sẽ được cập nhật vào bảng gốc (cả dòng). Em đính kèm file cần cập nhật (cập nhật từ các file khác vô GPE).
Mong các anh chị giúp đỡ.
 

File đính kèm

Em phải cập nhật dữ liệu từ nhiều file/workbook có cùng kết cấu (cập nhật từ sheet đầu tiên: bảng giá nguyên vật liệu của nhiều file/workbook). Việc cập nhật dựa vào mã vật tư mới từ các file/workbook, tất cả thông tin liên quan của mã vật tư mới này sẽ được cập nhật vào bảng gốc (cả dòng). Em đính kèm file cần cập nhật (cập nhật từ các file khác vô GPE).
Mong các anh chị giúp đỡ.
Là lấy cột [đơn giá] của bảng [TOOL-001-Tinh Gia Rockler_Ruong Canada_V04_AP.xlsx] đưa vào cột [đơn giá] của file GPE phải vậy không bạn?
 
Là lấy cột [đơn giá] của bảng [TOOL-001-Tinh Gia Rockler_Ruong Canada_V04_AP.xlsx] đưa vào cột [đơn giá] của file GPE phải vậy không bạn?
Cám ơn anh Hai Lúa Miền Tây đã trả lời em. Em muốn cập nhật thêm những mã vật tư ở bảng [TOOL-001-Tinh Gia Rockler_Ruong Canada_V04_AP.xlsx] mà file GPE chưa có thì sẽ cập nhật thêm vào file GPE.
 
quote_icon.png
Nguyên văn bởi ngoinhahoahong1492
Em phải cập nhật dữ liệu từ nhiều file/workbook có cùng kết cấu (cập nhật từ sheet đầu tiên: bảng giá nguyên vật liệu của nhiều file/workbook). Việc cập nhật dựa vào mã vật tư mới từ các file/workbook, tất cả thông tin liên quan của mã vật tư mới này sẽ được cập nhật vào bảng gốc (cả dòng). Em đính kèm file cần cập nhật (cập nhật từ các file khác vô GPE).
Mong các anh chị giúp đỡ.

Bạn copy code này vào file GPE chạy thử xem, không hiểu hết ý của bạn nên tạm viết thế này
PHP:
Sub capnhat()
Dim d, dl, kq(1 To 65000, 1 To 13), i, n, k, Cursh, dlcapnhat
Set d = CreateObject("scripting.dictionary")
Set Cursh = ActiveSheet
dl = Range([C8], [C65536].End(3)).Resize(, 13).Value
Application.FindFile
With ActiveWorkbook
 With .ActiveSheet
  dlcapnhat = .Range(.[C8], .[C65536].End(3)).Resize(, 13).Value
 End With
 .Close False
End With
For i = 1 To UBound(dl)
  If dl(i, 2) <> "" Then
    If Not d.exists(dl(i, 2)) Then
      k = k + 1
      d.Add dl(i, 2), k
      For n = 1 To 13
        kq(k, n) = dl(i, n)
      Next
    End If
  End If
Next
For i = 1 To UBound(dlcapnhat)
  If dlcapnhat(i, 2) <> "" Then
    If Not d.exists(dlcapnhat(i, 2)) Then
      k = k + 1
      For n = 1 To 13
        kq(k, n) = dlcapnhat(i, n)
      Next
    End If
  End If
Next
Cursh.[C8].Resize(k).NumberFormat = "@"
Cursh.[C8].Resize(k, 13) = kq
End Sub
 
Bạn copy code này vào file GPE chạy thử xem, không hiểu hết ý của bạn nên tạm viết thế này
PHP:
Sub capnhat()
....
End Sub
Cám ơn anh quanghai1969, em đã copy đoạn code của anh nhưng chưa được đó anh. Em giải thích ý em lại nha:
Công việc của em như thế này, em tính giá sản phẩm dựa vào Tool. Trong Tool có BangGiaVatTu. Và có Bảng giá vật tư song song bên ngoài. Với mỗi dòng hàng em sẽ tính vào 1 tool. Sẽ có những vật tư mới theo dòng hàng mới, khi đó em cập nhật vào tool mà quên không cập nhật vào bảng giá vật tư. Sếp em yêu cầu em có riêng 1 bảng giá vật tư bên ngoài nên em phải tập hợp/ cập nhật dữ liệu. Mà em chưa biết cách cập nhật nhanh và chính xác nên nhờ các anh chị. Em gửi lại file em cần tổng hợp ví dụ (thực tế gần 500 dòng), giải thích trong file đính kèm. Mong các anh chị giúp đỡ em.
 

File đính kèm

Cám ơn anh Hai Lúa Miền Tây đã trả lời em. Em muốn cập nhật thêm những mã vật tư ở bảng [TOOL-001-Tinh Gia Rockler_Ruong Canada_V04_AP.xlsx] mà file GPE chưa có thì sẽ cập nhật thêm vào file GPE.

Làm cho bạn thử coi có đúng không nhé.
Mã:
Sub HLMT_ADO()

On Error GoTo loi
Dim Cn As New ADODB.Connection
Dim mySQL As String, strFile As Variant
strFile = Application.GetOpenFilename()
    If strFile <> False Then
            mySQL = "UPDATE [DATA] a " _
                            & "INNER JOIN " _
                            & "[Excel 8.0;HDR=No;IMEX=2;DATABASE=" & ThisWorkbook.FullName & "].[BANGGIA] b  " _
                            & "ON a.F3=b.F3 " _
                            & "SET b.F10=a.F10"
             With Cn
                .Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                    "Data Source=" & strFile & _
                                    ";Extended Properties=""Excel 8.0;HDR=No;"";"
                .Execute mySQL
                .Close
            End With
    End If
Set Cn = Nothing
Exit Sub
loi:
MsgBox Err.Description

End Sub
Lưu ý: Phải đặt name cho 2 file, và file chứa dữ liệu là Excel 2003.
Nhớ giải nén rồi chạy thử nha bạn.
 

File đính kèm

Làm cho bạn thử coi có đúng không nhé.
Mã:
Sub HLMT_ADO()

....
Lưu ý: Phải đặt name cho 2 file, và file chứa dữ liệu là Excel 2003.
Nhớ giải nén rồi chạy thử nha bạn.
Em cám ơn anh HLMT nhiều. Anh cho em hỏi:
Đặt name như thế nào vậy anh? Em tải về nhưng giải nén thấy kết quả chưa được như ý.
Anh xem lại bài viết trên của em, em giải thích rõ hơn rồi, anh rảnh thì giúp em thêm với nha.
 
Web KT

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

Back
Top Bottom