Giúp mình ghép các Sheet thành 1 Sheet tổng hợp

Liên hệ QC

nahiep79

Thành viên mới
Tham gia
3/8/09
Bài viết
14
Được thích
1
Mình có một có một vấn đề xin được các bạn giúp đỡ. Mình có một file thống kê trong đó các sheet có cùng một cấu trúc. Minh muốn tổng hợp các sheet này thành một sheet tổng hợp. Và dữ liệu bên trong được sắp xếp theo cột " Ngày trả tiền ". Mình gửi file đính kèm theo các bạn giải quyết giúp mình.
Xinh chân thành cảm ơn !!
 

File đính kèm

  • THONG KE BOI THUONG TU 01.8.09 DEN T12.09.rar
    25.6 KB · Đọc: 304
Chỉnh sửa lần cuối bởi điều hành viên:
Hai Lúa Miền Tây ko phai dau ban code cua ban rất ok.chắc do mình nói bạn ko hiểu được đó. file cua mình tới gần 8mb nên minh ko dua lên được. nếu bạn thấy file trực tiếp bạn sẽ hiểu y mình.ko ban có the cho mình địa chỉ mail minh nho bạn giúp minh được ko.
mail minh la: minhdungtoday@gmail.com

 
Upvote 0
Bạn ơi
Mình đã trả lời của bạn và thấy rất dễ hiểu
Tuy nhiên lúc thao tác lại có vấn đề
Mình muốn tạo 1 file quản lý nhân viên kinh doanh
1 sheet là 1 tên nhân viên, file tổng hợp mình muốn tổng hợp theo tên nhân viên, mỗi khi sheet nhân viên thêm thông tin thì sheet tổng hợp tự động update thì làm như nào ạ?
Và cụ thể dán code thì dán như nào ạ?
Mình là thành viên mới mong các bạn chỉ giáo ạ
Cảm ơn nhìu
 

File đính kèm

  • Quản lý thông tin khách hàng.xls
    39.5 KB · Đọc: 6
Upvote 0
Bạn dùng code sau nhé:

[GPECODE=sql]Sub Union_HLMT()
Set adoConn = CreateObject("ADODB.Connection")
Set adoRS = CreateObject("ADODB.Recordset")
With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
.Open
End With
var1 = ""
var1 = var1 & "SELECT F1, " & vbCrLf
var1 = var1 & " F3, " & vbCrLf
var1 = var1 & " F4, " & vbCrLf
var1 = var1 & " F9, " & vbCrLf
var1 = var1 & " F12 " & vbCrLf
var1 = var1 & "FROM [GIANG$A2:V1000] " & vbCrLf
var1 = var1 & "UNION ALL " & vbCrLf
var1 = var1 & "SELECT F1, " & vbCrLf
var1 = var1 & " F3, " & vbCrLf
var1 = var1 & " F4, " & vbCrLf
var1 = var1 & " F9, " & vbCrLf
var1 = var1 & " F12 " & vbCrLf
var1 = var1 & "FROM [HOA$A2:V1000] " & vbCrLf
var1 = var1 & "UNION ALL " & vbCrLf
var1 = var1 & "SELECT F1, " & vbCrLf
var1 = var1 & " F3, " & vbCrLf
var1 = var1 & " F4, " & vbCrLf
var1 = var1 & " F9, " & vbCrLf
var1 = var1 & " F12 " & vbCrLf
var1 = var1 & "FROM [HA$A2:V1000] " & vbCrLf
var1 = var1 & "UNION ALL " & vbCrLf
var1 = var1 & "SELECT F1, " & vbCrLf
var1 = var1 & " F3, " & vbCrLf
var1 = var1 & " F4, " & vbCrLf
var1 = var1 & " F9, " & vbCrLf
var1 = var1 & " F12 " & vbCrLf
var1 = var1 & "FROM [TUAN$A2:V1000] " & vbCrLf
var1 = var1 & "UNION ALL " & vbCrLf
var1 = var1 & "SELECT F1, " & vbCrLf
var1 = var1 & " F3, " & vbCrLf
var1 = var1 & " F4, " & vbCrLf
var1 = var1 & " F9, " & vbCrLf
var1 = var1 & " F12 " & vbCrLf
var1 = var1 & "FROM [HUY$A2:V1000] " & vbCrLf
var1 = var1 & "UNION ALL " & vbCrLf
var1 = var1 & "SELECT F1, " & vbCrLf
var1 = var1 & " F3, " & vbCrLf
var1 = var1 & " F4, " & vbCrLf
var1 = var1 & " F9, " & vbCrLf
var1 = var1 & " F12 " & vbCrLf
var1 = var1 & "FROM [HIEP$A2:V1000] "
With adoRS
.ActiveConnection = adoConn
.Open var1
End With
With Sheets("tonghop")
.[A2:AP65000].ClearContents
.[A2].CopyFromRecordset adoRS
End With
adoRS.Close: Set adoRS = Nothing
adoConn.Close: Set adoConn = Nothing

End Sub
[/GPECODE]

Bạn ơi
Mình đã đọc trả lời của bạn và thấy rất dễ hiểu
Tuy nhiên lúc thao tác lại có vấn đề
Mình muốn tạo 1 file quản lý nhân viên kinh doanh
1 sheet là 1 tên nhân viên, file tổng hợp mình muốn tổng hợp theo tên nhân viên, mỗi khi sheet nhân viên thêm thông tin thì sheet tổng hợp tự động update thì làm như nào ạ?
Và cụ thể dán code thì dán như nào ạ?
Mình là thành viên mới mong các bạn chỉ giáo ạ
Cảm ơn nhìu
 

File đính kèm

  • Quản lý thông tin khách hàng.xls
    39.5 KB · Đọc: 13
Upvote 0
Bạn ơi
Mình đã trả lời của bạn và thấy rất dễ hiểu
Tuy nhiên lúc thao tác lại có vấn đề
Mình muốn tạo 1 file quản lý nhân viên kinh doanh
1 sheet là 1 tên nhân viên, file tổng hợp mình muốn tổng hợp theo tên nhân viên, mỗi khi sheet nhân viên thêm thông tin thì sheet tổng hợp tự động update thì làm như nào ạ?
Và cụ thể dán code thì dán như nào ạ?
Mình là thành viên mới mong các bạn chỉ giáo ạ
Cảm ơn nhìu
Bạn thử code này
Mã:
 Sub tonghop()
    Dim sh As Worksheet, lastcol As Integer
    Set cn = CreateObject("ADODB.Connection")
    cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";")
    With ActiveSheet
    lastcol = .Cells(2, Columns.Count).End(xlToLeft).Column
    For Each sh In ThisWorkbook.Sheets
        If sh.Name <> .nameThen
            Set rs = cn.Execute("select f1,f2,f8,f11 from [" & sh.Name & "$A3:K1000]")
            For i = 1 To lastcol
                If .Cells(2, i) = sh.Name Then
                    .Cells(4, i).CopyFromRecordset rs
                    Exit For
                End If
            Next
        End If
    Next
    End With
 End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Em đã dùng nhưng bị lỗi Syntax Error ạ
Phải làm sao đây ạ?
Em cảm ơn
Bạn thử code này
Mã:
 Sub tonghop()
    Dim sh As Worksheet, lastcol As Integer
    Set cn = CreateObject("ADODB.Connection")
    cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";")
    With ActiveSheet
    lastcol = .Cells(2, Columns.Count).End(xlToLeft).Column
    For Each sh In ThisWorkbook.Sheets
        If sh.Name <> .nameThen
            Set rs = cn.Execute("select f1,f2,f8,f11 from [" & sh.Name & "$A3:K1000]")
            For i = 1 To lastcol
                If .Cells(2, i) = sh.Name Then
                    .Cells(4, i).CopyFromRecordset rs
                    Exit For
                End If
            Next
        End If
    Next
    End With
 End Sub
 
Upvote 0
Ngay từ đầu phải chi bạn đưa dữ liệu thật lên thì đỡ cho mọi người.
Bạn chạy code sau nhé:

[GPECODE=sql]Sub Union_HLMT()
Set adoConn = CreateObject("ADODB.Connection")
Set adoRS = CreateObject("ADODB.Recordset")
With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
.Open
End With
Dim var1 As String, i As Integer
For i = 1 To 6
var1 = var1 & "SELECT F1, " & vbCrLf
var1 = var1 & " F3, " & vbCrLf
var1 = var1 & " F4, " & vbCrLf
var1 = var1 & " F9, " & vbCrLf
var1 = var1 & " F12 " & vbCrLf
var1 = var1 & "FROM [" & Sheets(i).Name & "$A8:L1000] " & vbCrLf
var1 = var1 & "WHERE F3 IS NOT NULL " & vbCrLf
var1 = var1 & "UNION ALL" & vbCrLf
Next
With adoRS
.ActiveConnection = adoConn
.Open Left(var1, Len(var1) - 11)
End With
With Sheet1
.[A3:E65000].ClearContents
.[A3].CopyFromRecordset adoRS
End With
adoRS.Close: Set adoRS = Nothing
adoConn.Close: Set adoConn = Nothing

End Sub


[/GPECODE]
bài viết hay, đáng để học hỏi thêm bạn hai lúa à
 
Upvote 0

File đính kèm

  • 7484012536669236733-account_id=0.jpg
    7484012536669236733-account_id=0.jpg
    52.6 KB · Đọc: 10
  • 8611291515816229574-account_id=0.jpg
    8611291515816229574-account_id=0.jpg
    54.5 KB · Đọc: 8
Upvote 0
Upvote 0
Web KT
Back
Top Bottom