Macro lấy dữ liệu lặp lại

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Jh3006

Thành viên mới
Tham gia
4/1/23
Bài viết
20
Được thích
0
Dạ em chào mọi người, Do em không giỏi về VBA nên cần mọi người giúp đỡ ạ

Em có file như bên dưới và em đang cần 1 code có thể lấy dữ liệu ở các sheet khác nhau (có chung 1 format) vào 1 sheet tổng để follow các action ạ. Mỗi tuần sẽ họp review lại 1 lần và thêm các action mới, lúc đó chỉ cần ấn chạy thì dữ liệu mới sẽ được cập nhật vào sheet mà không bị lấy lại dữ liệu của ngày cũ.

Em mong các anh chị có thể giúp đỡ em ạ

1682391040741.png1682391055453.png
 

File đính kèm

  • Macro lấy dữ liệu lặp lại.xlsx
    13.3 KB · Đọc: 13
  • 1682391010738.png
    1682391010738.png
    111.2 KB · Đọc: 9
Em có file như bên dưới và em đang cần 1 code có thể lấy dữ liệu ở các sheet khác nhau (có chung 1 format) vào 1 sheet tổng để follow các action ạ. Mỗi tuần sẽ họp review lại 1 lần và thêm các action mới, lúc đó chỉ cần ấn chạy thì dữ liệu mới sẽ được cập nhật vào sheet mà không bị lấy lại dữ liệu của ngày cũ.
Bạn đang muốn lấy data từ 1,2 vào action à?
 
Upvote 0
Đúng rồi ạ (Sheet 1,2 có chung 1 Format hết ạ)
Thử code này coi sao.
Mã:
Sub ABC()
    Dim Ws As Worksheet, iR&, i&
        For Each Ws In Worksheets
            i = Ws.Range("F" & Rows.Count).End(3).Row
            If i > 5 Then
                With Sheets("Action Follow up")
                    iR = .Range("C" & Rows.Count).End(3).Row + 1
                    .Range("A" & iR).Resize(i - 5).Value = Ws.Cells(2, 2).Value
                    .Range("B" & iR).Resize(i - 5).Value = Ws.Cells(2, 4).Value
                    Ws.Range("F6:I" & i).Copy .Range("C" & iR)
                End With
            End If
        Next
    
End Sub
 
Upvote 0
Thử code này coi sao.
Mã:
Sub ABC()
    Dim Ws As Worksheet, iR&, i&
        For Each Ws In Worksheets
            i = Ws.Range("F" & Rows.Count).End(3).Row
            If i > 5 Then
                With Sheets("Action Follow up")
                    iR = .Range("C" & Rows.Count).End(3).Row + 1
                    .Range("A" & iR).Resize(i - 5).Value = Ws.Cells(2, 2).Value
                    .Range("B" & iR).Resize(i - 5).Value = Ws.Cells(2, 4).Value
                    Ws.Range("F6:I" & i).Copy .Range("C" & iR)
                End With
            End If
        Next
   
End Sub
Khi mình qua 1 tuần review nhập thêm ngày mới á xong nhấn chạy lại thì nó lấy luôn cả những dữ liệu cũ ấy
 
Upvote 0
Khi mình qua 1 tuần review nhập thêm ngày mới á xong nhấn chạy lại thì nó lấy luôn cả những dữ liệu cũ ấy
Ý bạn là chỉ muốn lấy những cái ngày thêm hả? Bạn đừng viết chèn thêm tiếng anh vào. Mình đọc mình không hiểu á
 
Upvote 0
Ý bạn là chỉ muốn lấy những cái ngày thêm hả? Bạn đừng viết chèn thêm tiếng anh vào. Mình đọc mình không hiểu á
Xin lỗi, do mình bị quen tay á, mình sẽ lưu ý lại.

Đúng rồi, mình chỉ lấy những ngày thêm á. Ví dụ như sau 1 tuần (ngày 8/5), mình nhập thêm thông tin vào xong mình chạy Code VBA thì nó chỉ thêm những thông tin ngày 8/5 vào mục Sheet tổng thôi á
 
Upvote 0
Thì trước khi cho macro chạy, ta cần thêm bước đi tìm ngày cực đại của trang dữ liệu đã chép đến (ở các lần trước đó)
& khi chạy macro thì thêm điều kiện chép là ngày phại lớn hơn ngày cực đại
Chủ bài đăng tự ên trước xem sao?!
 
Upvote 0
Xin lỗi, do mình bị quen tay á, mình sẽ lưu ý lại.

Đúng rồi, mình chỉ lấy những ngày thêm á. Ví dụ như sau 1 tuần (ngày 8/5), mình nhập thêm thông tin vào xong mình chạy Code VBA thì nó chỉ thêm những thông tin ngày 8/5 vào mục Sheet tổng thôi á
Ban đầu, ở bài #1 có nói là không giỏi VBA, có nghĩa là VBA tàm tạm, dùng được. Thế sau khi có bài #4 thì đem VBA dùng được đó ra để sửa mà dùng đi chứ. Thế có phải không á?
 
Upvote 0
Code là để trường hợp dữ liệu nhiều, làm tay hổng nổi.
Chẳng lẽ cơ quan bạn một tuần có nhiều actions dữ vậy à?

Chạy tự động rồi cũng phải so sánh với minutes (*1) của buổi họp thôi. Code kiếc mệt bỏ xừ.
Theo tôi thì đây là trường hợp điển hình của "automation overplanned"

(*1) bạn dùng ngôn ngữ "chuyên môn" cho nên tôi cũng dùng lại

(*2) Giải thích Với người chưa rành cách họp của Tây:
Minutes là bản ghi tóm tắt lại chi tiết buổi họp. Lúc họp sếp sẽ chọn một người ghi minutes. Công việc của người này là ngồi chăm chú nghe, nhìn và ghi lại.
Thường thì nó chỉ bao gồm báo cáo miệng, vài lời phê của đồng đội và sếp, sau đó là lời kết thúc của sếp.
Nhưng trường hợp của thớt thì nó còn có thêm danh sách "to do's" (thớt gọi là "action" - nếu đúng thì phải là "actions for the week"). Công việc này là của người viết minutes trong buổi họp. Giao cho người khác thì sẽ bị "tam sao thất bổn".
 
Upvote 0
Web KT

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

Back
Top Bottom