Xin hỗ trợ hàm tổng hợp dữ liệu từ nhiều sheet vào sheet tổng (3 người xem)

Liên hệ QC

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

lemanhhung00000

Thành viên chính thức
Tham gia
20/7/11
Bài viết
94
Được thích
3
Kính gửi anh chị

Hiện tại sếp em yêu cầu nhân viên báo cáo từng ngày ạ

Nhưng em muốn gộp báo cáo từng ngày đó vào thành một bảng tổng hợp ạ

Trong file Excel của em có sheet tên là : Tong Hop

Em muốn làm thế nào để sheet (Tong Hop) tự động ghi lại dữ liệu báo cáo của từng ngày vào ạ (sẽ tổng kết thừ ngày 1 của đầu tháng và đến ngày 30 hoặc 31 cuối tháng vào sheet (Tong Hop)

Các sheet nhỏ sẽ có tên là : 15.12.18 đến 30.12.18


Rất mong anh chị xem có cách nào tìm hàm để tổng hợp vào được không ạ

Trân trọng cám ơn anh chị
 

File đính kèm

Kính gửi anh chị

Hiện tại sếp em yêu cầu nhân viên báo cáo từng ngày ạ

Nhưng em muốn gộp báo cáo từng ngày đó vào thành một bảng tổng hợp ạ

Trong file Excel của em có sheet tên là : Tong Hop

Em muốn làm thế nào để sheet (Tong Hop) tự động ghi lại dữ liệu báo cáo của từng ngày vào ạ (sẽ tổng kết thừ ngày 1 của đầu tháng và đến ngày 30 hoặc 31 cuối tháng vào sheet (Tong Hop)

Các sheet nhỏ sẽ có tên là : 15.12.18 đến 30.12.18


Rất mong anh chị xem có cách nào tìm hàm để tổng hợp vào được không ạ

Trân trọng cám ơn anh chị
Tôi không biết hàm, chỉ giúp bạn bằng VBA thôi:
PHP:
Public Sub sGpe()
Application.ScreenUpdating = False
Const Col As Long = 19
Dim Ws As Worksheet, sArr(), I As Long, J As Long, K As Long, R As Long
Dim dArr(1 To 50000, 1 To Col)
For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name <> "Tong Hop" Then
        If Ws.Range("A50000").End(xlUp).Row > 5 Then
            sArr = Ws.Range("A6", Ws.Range("A50000").End(xlUp)).Resize(, Col).Value
            R = UBound(sArr)
            For I = 1 To R
                K = K + 1
                For J = 1 To Col
                    dArr(K, J) = sArr(I, J)
                Next J
            Next I
        End If
    End If
Next Ws
With Sheets("Tong Hop")
    .Range("A3").Resize(50000, Col).ClearContents
    .Range("A3").Resize(50000, Col).Borders.LineStyle = 0
    .Range("A3").Resize(K, Col) = dArr
    .Range("A3").Resize(K, Col).Borders.LineStyle = 1
End With
End Sub
 
Tôi không biết hàm, chỉ giúp bạn bằng VBA thôi:
PHP:
Public Sub sGpe()
Application.ScreenUpdating = False
Const Col As Long = 19
Dim Ws As Worksheet, sArr(), I As Long, J As Long, K As Long, R As Long
Dim dArr(1 To 50000, 1 To Col)
For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name <> "Tong Hop" Then
        If Ws.Range("A50000").End(xlUp).Row > 5 Then
            sArr = Ws.Range("A6", Ws.Range("A50000").End(xlUp)).Resize(, Col).Value
            R = UBound(sArr)
            For I = 1 To R
                K = K + 1
                For J = 1 To Col
                    dArr(K, J) = sArr(I, J)
                Next J
            Next I
        End If
    End If
Next Ws
With Sheets("Tong Hop")
    .Range("A3").Resize(50000, Col).ClearContents
    .Range("A3").Resize(50000, Col).Borders.LineStyle = 0
    .Range("A3").Resize(K, Col) = dArr
    .Range("A3").Resize(K, Col).Borders.LineStyle = 1
End With
End Sub
Cám ơn bạn nhiều

Nhưng mình không am hiểu gì về VBA cả huhuhu
 
Cám ơn bạn nhiều

Nhưng mình không am hiểu gì về VBA cả huhuhu
Từ từ tham khảo học hỏi.
Tạm thời có thì cứ xài.
- Khi mở file, chọn Enable Macros
- Bấm vào nút GPE 1 phát.
- Kiểm tra kết quả không đúng thì "la làng".
@ Yêu cầu:
- Trong file, ngoài sheet "Tong Hop" thì tất cả các sheet khác phải cùng biểu mẫu.
- Không có sheet "lạ" nào khác ngoài các sheet ngày cần tổng hợp.
 

File đính kèm

Từ từ tham khảo học hỏi.
Tạm thời có thì cứ xài.
- Khi mở file, chọn Enable Macros
- Bấm vào nút GPE 1 phát.
- Kiểm tra kết quả không đúng thì "la làng".
@ Yêu cầu:
- Trong file, ngoài sheet "Tong Hop" thì tất cả các sheet khác phải cùng biểu mẫu.
- Không có sheet "lạ" nào khác ngoài các sheet ngày cần tổng hợp.
Cám ơn bác nhiều ạ

Em đã dùng thử theo hướng dẫn của bác rồi ạ

Nhưng bác cho em hỏi chút là em muốn thêm cột ghi chú nữa, Vậy phiền bác thêm VBA cột ghi chú giúp em được không ạ

Em cám ơn bác nhiều
Bài đã được tự động gộp:

Cám ơn bác nhiều ạ

Em đã dùng thử theo hướng dẫn của bác rồi ạ

Nhưng bác cho em hỏi chút là em muốn thêm cột ghi chú nữa, Vậy phiền bác thêm VBA cột ghi chú giúp em được không ạ

Em cám ơn bác nhiều


Bác ơi em làm được rồi ạ

Const Col As Long = 19


Em đoàn mò và chỉ thay số 19 thành 20 là được rồi ạ

Em cám ơn bác nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi không biết hàm, chỉ giúp bạn bằng VBA thôi:
PHP:
Public Sub sGpe()
Application.ScreenUpdating = False
Const Col As Long = 19
Dim Ws As Worksheet, sArr(), I As Long, J As Long, K As Long, R As Long
Dim dArr(1 To 50000, 1 To Col)
For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name <> "Tong Hop" Then
        If Ws.Range("A50000").End(xlUp).Row > 5 Then
            sArr = Ws.Range("A6", Ws.Range("A50000").End(xlUp)).Resize(, Col).Value
            R = UBound(sArr)
            For I = 1 To R
                K = K + 1
                For J = 1 To Col
                    dArr(K, J) = sArr(I, J)
                Next J
            Next I
        End If
    End If
Next Ws
With Sheets("Tong Hop")
    .Range("A3").Resize(50000, Col).ClearContents
    .Range("A3").Resize(50000, Col).Borders.LineStyle = 0
    .Range("A3").Resize(K, Col) = dArr
    .Range("A3").Resize(K, Col).Borders.LineStyle = 1
End With
End Sub


Bác ơi phiền bác làm cho em thêm cái VBA cho file đính kèm em gửi cho bác được không ạ?

Trong file Excel của em có sheet tên là : T12

Em muốn làm thế nào để sheet (T12) tự động ghi lại dữ liệu báo cáo của từng ngày vào ạ (sẽ tổng kết thừ ngày 1 của đầu tháng và đến ngày 30 hoặc 31 cuối tháng vào sheet (T12)

Các sheet nhỏ sẽ có tên là : 01-07, 08-13, 14-21, 22-31


Rất bác hỗ trợ em ạ

Trân trọng cám ơn
 

File đính kèm

File đính kèm

Chỉ lấy trọn trong tháng 12.
Dạ em cám ơn bác ạ

Cho em hỏi nếu mai kia em thay đổi các sheet có tên : 01-07, 08-13, 14-21, 22-31 thành các tên khác thì có ảnh hưởng gì không bác nhỉ?
hoặc thêm sheet có ảnh hưởng đến sheet T12 không ạ?
Bài đã được tự động gộp:

Dạ em cám ơn bác ạ

Cho em hỏi nếu mai kia em thay đổi các sheet có tên : 01-07, 08-13, 14-21, 22-31 thành các tên khác thì có ảnh hưởng gì không bác nhỉ?
hoặc thêm sheet có ảnh hưởng đến sheet T12 không ạ?
Bác ơi em đã test thử ở trong Sheet T12 không cập nhật được dữ liệu ở Shee : 01-07 từ dòng 15~19 ạ

Bác xem lại giúp em xem có bị lỗi gì không ạ

Em cám ơn bác nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Bác ơi em đã test thử ở trong Sheet T12 không cập nhật được dữ liệu ở Shee : 01-07 từ dòng 15~19 ạ

Bác xem lại giúp em xem có bị lỗi gì không ạ
- Thay đổi các sheet có tên : 01-07, 08-13, 14-21, 22-31 thành các tên khác : không ảnh hưởng!
- hoặc thêm sheet có ảnh hưởng đến sheet T12 không ạ? Có ảnh hưởng!
- Sheet T12 không cập nhật được dữ liệu ở Shee : 01-07 từ dòng 15~19 ạ : Bạn yêu cầu lấy dữ liệu từ ngày đầu đến ngày cuối tháng 12, những dòng đó của tháng 11 mà.
Lu bu thiệt, muốn lấy tất cả thì cần gì ghi yêu cầu: (sẽ tổng kết thừ ngày 1 của đầu tháng và đến ngày 30 hoặc 31 cuối tháng vào sheet (T12)
Tôi tắt máy chuẩn bị lên lớp buổi chiều, có gì thì nhờ các bạn khác giúp tiếp.
 
- Thay đổi các sheet có tên : 01-07, 08-13, 14-21, 22-31 thành các tên khác : không ảnh hưởng!
- hoặc thêm sheet có ảnh hưởng đến sheet T12 không ạ? Có ảnh hưởng!
- Sheet T12 không cập nhật được dữ liệu ở Shee : 01-07 từ dòng 15~19 ạ : Bạn yêu cầu lấy dữ liệu từ ngày đầu đến ngày cuối tháng 12, những dòng đó của tháng 11 mà.
Lu bu thiệt, muốn lấy tất cả thì cần gì ghi yêu cầu: (sẽ tổng kết thừ ngày 1 của đầu tháng và đến ngày 30 hoặc 31 cuối tháng vào sheet (T12)
Tôi tắt máy chuẩn bị lên lớp buổi chiều, có gì thì nhờ các bạn khác giúp tiếp.
Kính chào bác

Vậy bác đã giúp em thì giúp em nốt cho xong ạ

- Vậy em xin yêu cầu lại ạ :
- Sheet có tên T12 : Vui lòng tổng kết tất cả dữ liệu tất cả cho em ạ (từ tháng 1~T12)

Em ngồi mò và đổi những không được ạ

Em cám ơn bác nhiều
 

File đính kèm

Kính chào bác

Vậy bác đã giúp em thì giúp em nốt cho xong ạ

- Vậy em xin yêu cầu lại ạ :
- Sheet có tên T12 : Vui lòng tổng kết tất cả dữ liệu tất cả cho em ạ (từ tháng 1~T12)

Em ngồi mò và đổi những không được ạ

Em cám ơn bác nhiều
Bạn bỏ câu lệnh này đi là được.
Mã:
If Month(sArr(I, 2)) = Thang Then
End If
 
Bạn bỏ câu lệnh này đi là được.
Mã:
If Month(sArr(I, 2)) = Thang Then
End If
Bạn ơi mình đã bỏ dòng đó đi nhưng nó báo lỗi như vậy bạn ạ

Option Explicit

Public Sub s_Gpe()
Const Col As Long = 17
Dim Ws As Worksheet, sArr(), dArr(1 To 1000, 1 To Col), I As Long, J As Long, K As Long, R As Long, Thang As Long
Thang = 12
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "T12" Then
sArr = Ws.Range("A15", Ws.Range("B15").End(xlDown)).Resize(, Col).Value
R = UBound(sArr)
For I = 1 To R
K = K + 1
dArr(K, 1) = K
For J = 2 To Col
dArr(K, J) = sArr(I, J)
Next J
End If
Next I
End If
Next Ws
Sheets("T12").Range("A15").Resize(1000, Col).ClearContents
Sheets("T12").Range("A15").Resize(K, Col) = dArr
End Sub

20190102_172949.png
 

File đính kèm

Bạn ơi mình đã bỏ dòng đó đi nhưng nó báo lỗi như vậy bạn ạ

Option Explicit

Public Sub s_Gpe()
Const Col As Long = 17
Dim Ws As Worksheet, sArr(), dArr(1 To 1000, 1 To Col), I As Long, J As Long, K As Long, R As Long, Thang As Long
Thang = 12
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "T12" Then
sArr = Ws.Range("A15", Ws.Range("B15").End(xlDown)).Resize(, Col).Value
R = UBound(sArr)
For I = 1 To R
K = K + 1
dArr(K, 1) = K
For J = 2 To Col
dArr(K, J) = sArr(I, J)
Next J
End If
Next I
End If
Next Ws
Sheets("T12").Range("A15").Resize(1000, Col).ClearContents
Sheets("T12").Range("A15").Resize(K, Col) = dArr
End Sub

View attachment 210328
Nó báo thừa 1 cái End if bạn xoá 1 cái ở trên đi xem đúng không.
 
Kính chào bạn

Phiền bạn có thể hỗ trợ sử trong file đính kèm giúp mình được không ạ?

Vì mình không sành lắm về VBA ạ

Trân trọng cám ơn
Mã:
Public Sub s_Gpe()
Const Col As Long = 17
Dim Ws As Worksheet, sArr(), dArr(1 To 1000, 1 To Col), I As Long, J As Long, K As Long, R As Long, Thang As Long
Thang = 12
For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name <> "T12" Then
        sArr = Ws.Range("A15", Ws.Range("B15").End(xlDown)).Resize(, Col).Value
        R = UBound(sArr)
        For I = 1 To R
                K = K + 1
                dArr(K, 1) = K
                For J = 2 To Col
                    dArr(K, J) = sArr(I, J)
                Next J
        Next I
    End If
Next Ws
Sheets("T12").Range("A15").Resize(1000, Col).ClearContents
Sheets("T12").Range("A15").Resize(K, Col) = dArr
End Sub
Đây bạn xem.
 
Mã:
Public Sub s_Gpe()
Const Col As Long = 17
Dim Ws As Worksheet, sArr(), dArr(1 To 1000, 1 To Col), I As Long, J As Long, K As Long, R As Long, Thang As Long
Thang = 12
For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name <> "T12" Then
        sArr = Ws.Range("A15", Ws.Range("B15").End(xlDown)).Resize(, Col).Value
        R = UBound(sArr)
        For I = 1 To R
                K = K + 1
                dArr(K, 1) = K
                For J = 2 To Col
                    dArr(K, J) = sArr(I, J)
                Next J
        Next I
    End If
Next Ws
Sheets("T12").Range("A15").Resize(1000, Col).ClearContents
Sheets("T12").Range("A15").Resize(K, Col) = dArr
End Sub
Đây bạn xem.
Dạ cám ơn bạn ạ

Nó đã chạy rồi ạ

Chúc bạn một ngày làm việc hiệu quả

Trân trọng
 
Web KT

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

Back
Top Bottom