Giúp trích số liệu từ nhiều sheet vào 1 sheet chung (1 người xem)

  • Thread starter Thread starter utan
  • Ngày gửi Ngày gửi
Liên hệ QC

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

utan

Thành viên mới
Tham gia
3/11/08
Bài viết
19
Được thích
0
Dear all,

Tình hình là mình có 1 file excel có rất nhiều sheet. Mỗi sheet có rất nhiều số liệu.

Vấn đề của mình là copy số liệu ở ô X29 đến X44 và Z29 đến Z44 ở mỗi sheet vô chung 1 sheet tổng.
Đồng thời lấy tên của số liệu từ R14 đến R15 mỗi sheet đưa vào sheet chung luôn. (Xem file kèm)

Do số liệu rất nhiều không thể cắt dán, nhờ các bạn giúp dùm VBA code để tự động.

Cám ơn rất nhiều.
 

File đính kèm

Dear all,

Tình hình là mình có 1 file excel có rất nhiều sheet. Mỗi sheet có rất nhiều số liệu.

Vấn đề của mình là copy số liệu ở ô X29 đến X44 và Z29 đến Z44 ở mỗi sheet vô chung 1 sheet tổng.
Đồng thời lấy tên của số liệu từ R14 đến R15 mỗi sheet đưa vào sheet chung luôn. (Xem file kèm)

Do số liệu rất nhiều không thể cắt dán, nhờ các bạn giúp dùm VBA code để tự động.

Cám ơn rất nhiều.
Bài này dùng VBA thì nhanh thôi nhưng có 2 vấn đề cần làm rõ để khỏi mắc công sửa đi sửa lại
1) Vùng bạn muốn lấy là vung nào ??? xác nhận lại cho rõ vì nhìn bài và câu hỏi hình như hổng có giống nhau, ghi là lấy
ô X29 đến X44 và Z29 đến Z44 ở mỗi sheet
trong file thì lấy [Y29:Z44] ==> em nào đúng ???
2) Tên các sheet khác ngoài sheet Tổng hợp nên đưa tên thật hoặc giống y như thật vì code này phải sử dụng tên sheet
Thân
 
1) Vùng bạn muốn lấy là vung nào ??? xác nhận lại cho rõ vì nhìn bài và câu hỏi hình như hổng có giống nhau, ghi là lấy
ô X29 đến X44 và Z29 đến Z44 ở mỗi sheet
trong file thì lấy [Y29:Z44] ==> em nào đúng ?
đúng là
Trong file
Sheet1: Z29:AA44
Sheet2: Y29:Z44

ngoài câu hỏi thì khác nữa????
 
Xin cám ơn các bạn nhiệt tình giúp đỡ.
Tất cả các shhet đều có dữ liệu ỡ ô Y29:Z44 (file ví dụ bị lộn).
Tên sheet là các số thứ tự khác nhau.

Xin cám ơn các bạn rất nhiều!
 

File đính kèm

Xin cám ơn các bạn nhiệt tình giúp đỡ.
Tất cả các shhet đều có dữ liệu ỡ ô Y29:Z44 (file ví dụ bị lộn).
Tên sheet là các số thứ tự khác nhau.

Xin cám ơn các bạn rất nhiều!
Dùng VBA nhé, nhớ Enable Macros, dữ liệu ở các sheets phải đúng "y chang" địa chỉ như đã có.
 

File đính kèm

Cám ơn Ba tê rất nhiều. Nhưng khi mình có thêm sheet thứ 4, thứ 5 muốn copy tiếp theo vào sheet tổng hợp thì phải làm sao?
 

File đính kèm

Lần chỉnh sửa cuối:
Dữ liệu ở các sheets phải đúng "y chang" địa chỉ như đã có, nhưng khi chạy bị lỗi chỗ:

Arr(1, Cot) = WS.[R14].Value.
 
Dữ liệu ở các sheets phải đúng "y chang" địa chỉ như đã có, nhưng khi chạy bị lỗi chỗ:

Arr(1, Cot) = WS.[R14].Value.
sửa lại chút 2dòng code thôi (code cũ của bác bate nhé)

Bạn nháy phải lên tên sheet TongHop chọn viewcode và thay cái cũ thành cái mới này

Đổi thành thế này là được,
PHP:
Private Sub CommandButton1_Click()
Dim Rng(), Arr(), I As Long, TWs As Long, Cot As Long, WS As Worksheet
TWs = Worksheets.Count - 1
ReDim Arr(1 To 19, 1 To TWs * 2)
Cot = -1
    For Each WS In Worksheets
        If WS.Name <> "TongHop" Then
            Cot = Cot + 2
            Rng = WS.[Y29:Z44].Value
                Arr(1, Cot) = WS.[R14].Value
                Arr(2, Cot) = WS.[R15].Value
            For I = 1 To 16
                Arr(I + 3, Cot) = Rng(I, 1)
                Arr(I + 3, Cot + 1) = Rng(I, 2)
            Next I
        End If
    Next
        Sheet1.[A3].Resize(19, TWs * 2).Value = Arr
End Sub
 
Lần chỉnh sửa cuối:
Code chạy hoàn hảo, xin cám ơn các bạn trợ giúp. Tuy nhiên nếu không dùng "nút bấm" mà sử dụng như 1 marcro để khi cần copy vào 1 worksheet khác thì sửa code lại thế nào?

Chúc các bạn cuối tuần vui vẻ!
 
Code chạy hoàn hảo, xin cám ơn các bạn trợ giúp. Tuy nhiên nếu không dùng "nút bấm" mà sử dụng như 1 marcro để khi cần copy vào 1 worksheet khác thì sửa code lại thế nào?

Chúc các bạn cuối tuần vui vẻ!

GIải pháp tốt nhất là:
- bấm Alt+F11--> mở ra VBE --> rồi vào Insert \ Module
- tại Module1 đó, đặt code vào đây; bạn đổi tên SUB đó thành tên gì đó, ví như Copy_Sheets, như sau và đặt nó vào module1 đó

PHP:
Private Sub Copy_Sheets()
Dim Rng(), Arr(), I As Long, TWs As Long, Cot As Long, WS As Worksheet
TWs = Worksheets.Count - 1
ReDim Arr(1 To 19, 1 To TWs * 2)
Cot = -1
    For Each WS In Worksheets
        If WS.Name <> "TongHop" Then
            Cot = Cot + 2
            Rng = WS.[Y29:Z44].Value
                Arr(1, Cot) = WS.[R14].Value
                Arr(2, Cot) = WS.[R15].Value
            For I = 1 To 16
                Arr(I + 3, Cot) = Rng(I, 1)
                Arr(I + 3, Cot + 1) = Rng(I, 2)
            Next I
        End If
    Next
        Sheet1.[A3].Resize(19, TWs * 2).Value = Arr
End Sub


- Đóng VBE lại - click dấu x góc phải trên
-Giờ bạn có macro (bấm Alt+F8 sẽ thấy) để chạy
HOẶC thích tạo nút thì tại sheet TongHop bạn vẽ 1 hình shape ví dụ Oval --> nháy phải trên hình này và chọn Assign macro --> chọn Copy_Sheets và OKIE -giờ có thể bấm hình oval này để chạy sub đó rui
 
Web KT

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

Back
Top Bottom