Code VBA tổng hợp dữ liệu nhiều sheet vào 1 sheet

quanluu1989

Thành viên gắn bó
Tham gia ngày
11 Tháng tư 2013
Bài viết
1,999
Được thích
1,090
Điểm
560
Nơi ở
Nam Định/Thái Nguyên
chẳng nhẻ không có cách nào vừa lấy dữ liệu vừa limk được ư.nhờ mọi người giúp với nhé.
Không hiểu ý bạn là như thế nào, mình thấy nếu bạn muốn khi sủa dữ liệu ở sheet khác và quay trở lại sheet tổng hợp thì dữ liệu sẽ đc tổng hợp thì bạn đặt code trong sự kiện worksheet_active nhé.
 

HieuCD

Thành viên gạo cội
Tham gia ngày
14 Tháng chín 2010
Bài viết
5,623
Được thích
9,822
Điểm
560
chẳng nhẻ không có cách nào vừa lấy dữ liệu vừa limk được ư.nhờ mọi người giúp với nhé.
chạy tự động vẫn làm được, nhưng có hạn chế của nó
- mỗi lần bạn nhập liệu code tự chạy, nếu dữ liệu nhiều sẽ cà giựt ... giựt rất khó chịu
- bạn nhập dữ liệu mỗi sheet một ít không đầy đủ rồi lại nhảy qua sheet khác nhập tiếp, tổng hợp có thể không đúng
- Cách đánh số thứ tự của bạn rất dể nhầm lẫn
- có thể mỗi sheet bạn phải tạo một code chạy tự động
mình nghĩ nhập liệu đầy đủ rồi chạy 1 lần cho gọn
 

nhanbhxh

Thành viên mới
Tham gia ngày
15 Tháng mười hai 2014
Bài viết
7
Được thích
0
Điểm
0
Tuổi
33
vậy thì thôi để vậy rồi cứ làm xong lại chạy tổng hợp không chậm thì cũng rất giở vì lần trước em cũng có một macro link nhung chậm lắm.
 

chuongdo

Thành viên mới
Tham gia ngày
26 Tháng chín 2012
Bài viết
4
Được thích
0
Điểm
0
Tuổi
33
Mấy Bác giúp em với
VD: em có 2 file file1 và file2 như mẫu,em muốn copy mỗi cột trong file 1 vào cột tương ứng với từng sheet trong file 2 thì code sao ạ?.em cảm ơn.
 

File đính kèm

Ba Tê

Cạo Rồi Khỏi Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
11,057
Được thích
15,623
Điểm
1,860
Tuổi
60
Nơi ở
An Giang
Mấy Bác giúp em với
VD: em có 2 file file1 và file2 như mẫu,em muốn copy mỗi cột trong file 1 vào cột tương ứng với từng sheet trong file 2 thì code sao ạ?.em cảm ơn.
Chạy thử code này xem sao.
PHP:
Public Sub GPE()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim Ws As Worksheet, Cll As Range, dArr(), K As Long, Col As Long
Dim MyWb As String, Pat As String, FName As String
FName = "File2.xlsx"
MyWb = ThisWorkbook.Name
Pat = ThisWorkbook.Path & "\"
    Workbooks.Open Filename:=Pat & FName
    With ActiveWorkbook
        ReDim dArr(1 To 11, 1 To .Worksheets.Count)
            For Each Ws In .Worksheets
                Col = Col + 1
                K = 1: dArr(K, Col) = Ws.Name
                For Each Cll In Ws.Range("C12:C21")
                    K = K + 1
                    dArr(K, Col) = Cll.Value
                Next Cll
            Next Ws
        .Close False
    End With
Workbooks(MyWb).Activate
Sheet1.Range("B2").Resize(11, Col) = dArr
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
 

chuongdo

Thành viên mới
Tham gia ngày
26 Tháng chín 2012
Bài viết
4
Được thích
0
Điểm
0
Tuổi
33
Chạy thử code này xem sao.
PHP:
Public Sub GPE()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim Ws As Worksheet, Cll As Range, dArr(), K As Long, Col As Long
Dim MyWb As String, Pat As String, FName As String
FName = "File2.xlsx"
MyWb = ThisWorkbook.Name
Pat = ThisWorkbook.Path & "\"
    Workbooks.Open Filename:=Pat & FName
    With ActiveWorkbook
        ReDim dArr(1 To 11, 1 To .Worksheets.Count)
            For Each Ws In .Worksheets
                Col = Col + 1
                K = 1: dArr(K, Col) = Ws.Name
                For Each Cll In Ws.Range("C12:C21")
                    K = K + 1
                    dArr(K, Col) = Cll.Value
                Next Cll
            Next Ws
        .Close False
    End With
Workbooks(MyWb).Activate
Sheet1.Range("B2").Resize(11, Col) = dArr
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Mình copy dữ lieu vào file 1 và chạy thử thì báo lỗi thế này là như thế nào vậy bạn?mình mù tịt cái khoản này.bạn xem giúp,cảm ơn bạn nhiều
 

File đính kèm

Lần chỉnh sửa cuối:

Ba Tê

Cạo Rồi Khỏi Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
11,057
Được thích
15,623
Điểm
1,860
Tuổi
60
Nơi ở
An Giang
Mình copy dữ lieu vào file 1 và chạy thử thì báo lỗi thế này là như thế nào vậy bạn?cảm ơn bạn nhiều
2 file phải cùng Folder. Tên file cũng phải như tên file bạn gởi.
Bạn phải đưa 2 file của bạn lên, chạy code thử mới biết sai do đâu.
Nhìn hình sao biết lỗi từ đâu.
 

File đính kèm

Lần chỉnh sửa cuối:

chuongdo

Thành viên mới
Tham gia ngày
26 Tháng chín 2012
Bài viết
4
Được thích
0
Điểm
0
Tuổi
33
2 file phải cùng Folder. Tên file cũng phải như tên file bạn gởi.
Bạn phải đưa 2 file của bạn lên, chạy code thử mới biết sai do đâu.
Nhìn hình sao biết lỗi từ đâu.
2 file của mình đây bạn.vì mình làm báo cáo theo ngày.mỗi ngày là 1 file2,nhưng nhiều lắm,copy dán thì lâu quá
 

File đính kèm

chuongdo

Thành viên mới
Tham gia ngày
26 Tháng chín 2012
Bài viết
4
Được thích
0
Điểm
0
Tuổi
33
2 file phải cùng Folder. Tên file cũng phải như tên file bạn gởi.
Bạn phải đưa 2 file của bạn lên, chạy code thử mới biết sai do đâu.
Nhìn hình sao biết lỗi từ đâu.
Cảm ơn bác,cái này chạy ok.nhưng bị ngược với yêu cầu em đưa ra.code này nó copy các sheets trong file co tên File2 vào các cột của bang trong File1,mình cần copy ngược lại bác ơi.hihi cảm ơn bác nhờ bác xem sửa lại giúp mình với nhé.
 
Lần chỉnh sửa cuối:

nhanbhxh

Thành viên mới
Tham gia ngày
15 Tháng mười hai 2014
Bài viết
7
Được thích
0
Điểm
0
Tuổi
33
Nhờ các anh chị giúp em tạo một code vba làm sao em có thể tự động lấy dữ liệu từ các sheet sang sheet tổng hợp, đống thời nếu dữ liệu của nhưng sheet kia thay đổi thì nó sẽ tự động thay đổi dự liệu ở sheet tổng hợp. em có gửi file đính kèm. nhờ các anh chị giúp đỡ, em cảm ơn nhiều.​
Tập tin đính kèm
  • gui giai phap excel.xls (96.5 KB, 3 lần tải)
  • nhờ cả nhà làm giúp em cái code tự động copy mà có link với. chứ copy mà không link thì không chuẩn.
 

Ba Tê

Cạo Rồi Khỏi Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
11,057
Được thích
15,623
Điểm
1,860
Tuổi
60
Nơi ở
An Giang
Cảm ơn bác,cái này chạy ok.nhưng bị ngược với yêu cầu em đưa ra.code này nó copy các sheets trong file có tên File2 vào các cột của bảng trong File1,mình cần copy ngược lại bác ơi.hihi cảm ơn bác nhờ bác xem sửa lại giúp mình với nhé.
Vậy thì chạy Sub này từ File1 (phải có đuôi .xlsm hoặc .xlsb), File2.xlsx phải cùng Folder với File1
PHP:
Public Sub GPE()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
    Dim Ws As Worksheet, sArr(), dArr(), I As Long, J As Long
    sArr = Sheet1.Range("B2:I12").Value
    Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "File2.xlsx"   '<----
    With ActiveWorkbook
        For Each Ws In .Worksheets
            ReDim dArr(1 To 10, 1 To 1)
            For J = 1 To UBound(sArr, 2)
                If sArr(1, J) = Ws.Name Then
                    For I = 2 To UBound(sArr)
                        dArr(I - 1, 1) = sArr(I, J)
                    Next I
                    Ws.Range("C12:C21") = dArr
                    Exit For
                End If
            Next J
        Next Ws
        .Save
    End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:

Phuongtracy2803

Thành viên mới
Tham gia ngày
27 Tháng chín 2017
Bài viết
2
Được thích
0
Điểm
0
Tuổi
31
Chào mọi người,
Mình đang có một việc muốn nhờ mọi người giúp đỡ. Hiện mình đang có các báo cáo của cơ sở (khoảng 20 báo cáo), mỗi báo cáo có khoảng 29 bảng khác nhau. Mình muốn nhờ một bạn tư vấn giúp mình cách viết code VBA để có thể tổng hợp báo cáo tự động.
Mình rất muốn được học VBA nên nếu trong quá trình làm các bạn cho mình tham gia cùng thì tốt quá. Mình xin gửi các bạn 1 chút kinh phí để cảm ơn, Các bạn nào quan tâm xin liên hệ với mình qua email phuonghsph@gmail.com hoặc số điện thoại 0985909660

Cảm ơn so much

Phương
 

befaint

|||||||||||||
Tham gia ngày
6 Tháng một 2011
Bài viết
8,626
Được thích
9,813
Điểm
560
Mình đang có một việc muốn nhờ mọi người giúp đỡ. Hiện mình đang có các báo cáo của cơ sở (khoảng 20 báo cáo), mỗi báo cáo có khoảng 29 bảng khác nhau. Mình muốn nhờ một bạn tư vấn giúp mình cách viết code VBA để có thể tổng hợp báo cáo tự động.
Mình rất muốn được học VBA nên nếu trong quá trình làm các bạn cho mình tham gia cùng thì tốt quá. Mình xin gửi các bạn 1 chút kinh phí để cảm ơn, Các bạn nào quan tâm xin liên hệ với mình qua email phuonghsph@gmail.com hoặc số điện thoại 0985909660
Thứ nhất, bạn không được chen ngang vào chủ đề của người khác.
Thứ hai, việc để lại email/ số điện thoại ở những bài cần trợ giúp là không nên.
Thứ ba, với yêu cầu này, bạn vào chuyên mục "Thành viên giúp nhau" lập chủ đề rồi đề xuất yêu cầu.
 

thuy.dk27

Thành viên mới
Tham gia ngày
25 Tháng chín 2015
Bài viết
2
Được thích
0
Điểm
163
Tuổi
30
Nhờ các anh chị giúp mình viết một đoạn code VBA để tra cứu dữ liệu lập kế hoạch của một mã số chi tiết từ ngày 01 đến ngày 31 trong một tháng. VD: mình cần tra mã chi tiết 221PRI-CL-B-8000 với các thong tin như Sheet "Tra cứu CT".
Tương tự đối với Sheet "Tra cứu Máy".
Rất mong mọi người giúp em với.
 

File đính kèm

Top Bottom