Giúp code tổng hợp dữ liệu từ nhiều file excel (1 người xem)

Liên hệ QC

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

bagiacom

Thành viên mới
Tham gia
1/11/10
Bài viết
27
Được thích
1
Mình có 3 file từ ngày 01 đến ngày 03. Mình muốn lấy dữ liệu của SP2 tại sheets 1 trong 3 ngày đó vào file tổng hợp. Mong các bạn giúp đỡ
 

File đính kèm

Mình có 3 file từ ngày 01 đến ngày 03. Mình muốn lấy dữ liệu của SP2 tại sheets 1 trong 3 ngày đó vào file tổng hợp. Mong các bạn giúp đỡ

Chào bagiacom,

Trong file đính kèm ở bài #1 có 4 file "DU LIEU 1,2,3,4" và 1 file "DU LIEU TONG HOP". Vậy bạn cần dữ liệu từ 3 file nào?
Ngoài ra, trong cả 4 file "DU LIEU" trên không tìm thấy SP2 nằm ở đâu.
Thứ nữa, đây là ví dụ minh họa. Làm xong bạn có chắc là khớp với dữ liệu thật của bạn.
Bạn xem lại dùm nhé.
 
Upvote 0
Chào bagiacom,

Trong file đính kèm ở bài #1 có 4 file "DU LIEU 1,2,3,4" và 1 file "DU LIEU TONG HOP". Vậy bạn cần dữ liệu từ 3 file nào?
Ngoài ra, trong cả 4 file "DU LIEU" trên không tìm thấy SP2 nằm ở đâu.
Thứ nữa, đây là ví dụ minh họa. Làm xong bạn có chắc là khớp với dữ liệu thật của bạn.
Bạn xem lại dùm nhé.
Thành thật xin lỗi bạn, mình post nhầm file. Mình đã sửa lại mong bạn xử lý giúp
 

File đính kèm

Upvote 0
Thành thật xin lỗi bạn, mình post nhầm file. Mình đã sửa lại mong bạn xử lý giúp

Bạn thử đoạn sau nhé. Nếu mà không trúng với file thật của bạn thì bạn tự ráng sửa nhé --=0
Sub TongHopSP2:
Mã:
Sub TongHopSP2()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim i As Integer, Ipath As String, iName()
Dim kq As Range, rng As Range, lr As Long, tmp(), sh As Worksheet, ngay
Dim dk As String: dk = ThisWorkbook.Name
Dim ten As String: ten = "SP2"
Set sh = ThisWorkbook.Sheets(1)
Ipath = GetFolder("")
If Ipath = "" Then Exit Sub
iName = GetFileList(Ipath)
sh.Range("A4:Y" & sh.Range("A65000").End(3).Row + 1).Clear ' // Xoa du lieu da co.
For i = 1 To UBound(iName)
    If iName(i) <> dk Then
    Workbooks.Open Filename:=Ipath & "\" & iName(i), ReadOnly:=True
        With ActiveWorkbook.Sheets(1)
            lr = .Range("A65000").End(3).Row
            Set rng = .Range("A5:A" & lr)
            Set kq = rng.Find(ten, .Range("A5"), xlValues)
            tmp = kq.Offset(0, 1).Resize(1, 24).Value
            ngay = Right(.Range("A2").Value, 2)
        End With
        Workbooks(iName(i)).Close
        sh.Range("B" & sh.Range("B65000").End(3).Row + 1).Resize(1, 24).Value = tmp
        sh.Range("A" & sh.Range("A65000").End(3).Row + 1).NumberFormat = "@"
        sh.Range("A" & sh.Range("A65000").End(3).Row + 1).Value = Format(ngay, "0#")
    End If
Next
sh.Range("A4:Y" & sh.Range("A65000").End(3).Row).Borders.LineStyle = xlContinuous
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Function:
Mã:
Function GetFolder(strPath As String) As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
    .Title = "Select a Folder"
    .AllowMultiSelect = False
    .InitialFileName = strPath
    If .Show <> -1 Then GoTo NextCode
    sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function

'************************
' // by quanghai1969 /GPE
Function GetFileList(ByVal StrFolder As String)
Dim fso As Object, ObjFile As Object
Dim Res(), K As Long
Set fso = CreateObject("Scripting.FileSystemObject")
   With fso.GetFolder(StrFolder)
      For Each ObjFile In .Files
         If fso.GetExtensionName(ObjFile) Like "xls*" Then
            K = K + 1
            ReDim Preserve Res(1 To K)
            Res(K) = ObjFile.Name
         End If
      Next
   End With
   GetFileList = Res
End Function
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn cho mình hỏi nếu mình muốn tìm kiếm và lấy dữ liệu trong khoảng từ A6 đến Y8 thì sửa code như thế nào? Chân thành cẩm ơn bạn
 
Upvote 0
Bạn cho mình hỏi nếu mình muốn tìm kiếm và lấy dữ liệu trong khoảng từ A6 đến Y8 thì sửa code như thế nào? Chân thành cẩm ơn bạn

Sau 05 ngày bạn đã quay trở lại và ... yêu cầu nhiều hơn xưa --=0
Bạn muốn tìm kiếm CÁI GÌ và LẤY CÁI GÌ trong A6:Y8?
 
Upvote 0
Sau 05 ngày bạn đã quay trở lại và ... yêu cầu nhiều hơn xưa --=0
Bạn muốn tìm kiếm CÁI GÌ và LẤY CÁI GÌ trong A6:Y8?
Chào bạn hiền!

Dân kế toán có khác! đếm kỹ từng ngày luôn **~****~****~**

Chúc befaint ngày vui.
p/s không quậy được befaint khó chịu trong người, chỉ tiếc là không đủ trí lực tham gia nhóm VBA -=.,,
 
Upvote 0
Chào bạn hiền!

Dân kế toán có khác! đếm kỹ từng ngày luôn **~****~****~**

Chúc befaint ngày vui.
p/s không quậy được befaint khó chịu trong người, chỉ tiếc là không đủ trí lực tham gia nhóm VBA -=.,,

Úi, không phải rồi anh ơi.
Sao anh lại nghĩ em là "dân kế toán" được nhỉ? --=0--=0
Công việc không có tí gì về kế toán hay excel cả. híc
 
Upvote 0
Sau 05 ngày bạn đã quay trở lại và ... yêu cầu nhiều hơn xưa --=0
Bạn muốn tìm kiếm CÁI GÌ và LẤY CÁI GÌ trong A6:Y8?
Xin lỗi bác, tại công việc của em bận quá, cứ việc này việc kia, định hỏi bác chút ít nhưng đã sửa được rồi. Chân thành cảm ơn bác, hẹn một ngày không xa --=0
 
Upvote 0
Web KT

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

Back
Top Bottom