Lấy dữ liệu tự động từ 3 sheet và sắp xếp theo thứ tự (1 người xem)

  • Thread starter Thread starter devilvq
  • Ngày gửi Ngày gửi

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

devilvq

Thành viên mới
Tham gia
2/5/11
Bài viết
6
Được thích
0
Mình có một bài tâp nhờ mọi người giúp đỡ !$@!!, Mình có một bảng dữ liệu như file đính kèm gồm 3 sheet: A-B,B-C,C-A. Mình sẽ nhập dữ liệu vô 3 sheet này, mỗi sheet sẽ khác nhau về số người, có thể có sheet sẽ không có( Do tùy từng tháng).

Mình muốn sheet KẾT QUẢ sẽ tự động cập nhật tên của từng người, số tổng, hệ số và NET.
Sau đó sẽ tự động sắp xếp theo thứ tự số "TỔNG" tăng dần.
Bạn nào giúp mình với nhật là cái yêu cầu đầu tiên. Cảm ơn các bạn nhiều
 

File đính kèm

Ai giúp mình với -\\/. hix hix
 
Coppy thì được rồi 1p là xong!$@!! , cái quan trọng ông sếp bắt tự động mới chết chứ hix hix. :=\+
 
Mình có một bài tâp nhờ mọi người giúp đỡ !$@!!, Mình có một bảng dữ liệu như file đính kèm gồm 3 sheet: A-B,B-C,C-A. Mình sẽ nhập dữ liệu vô 3 sheet này, mỗi sheet sẽ khác nhau về số người, có thể có sheet sẽ không có( Do tùy từng tháng).

Mình muốn sheet KẾT QUẢ sẽ tự động cập nhật tên của từng người, số tổng, hệ số và NET.
Sau đó sẽ tự động sắp xếp theo thứ tự số "TỔNG" tăng dần.
Bạn nào giúp mình với nhật là cái yêu cầu đầu tiên. Cảm ơn các bạn nhiều

Thử xem code bên dưới xem.Bạn tự sắp xếp nha. Và có thể dùng For để thay thế nếu Call được gọi nhiều lần
Cái này tôi viết theo kiểu sử dụng vòng lặp để cho các bạn khác tham gia học hỏi, bài này có nhiều cách làm, copy cũng là 1 cách

Mã:
Sub GPE01(WS As Worksheet, Arr(), ByRef k As Long)


        Dim Rng As Range
        Dim Dong As Long
        Dim i As Long, j As Long
        Dong = WS.Range("A65000").End(xlUp).Row
        Set Rng = WS.Range("A4:Y" & Dong)
        For i = 1 To Dong - 3
            k = k + 1
            Arr(k, 1) = k
            Arr(k, 2) = Rng(i, 2)
            Arr(k, 3) = Rng(i, 23)
            Arr(k, 4) = Rng(i, 24)
            Arr(k, 5) = Rng(i, 25)
        Next
End Sub

Mã:
Sub GPE02()
    Dim WS As Worksheet
    Dim Arr()
    Dim k As Long
[B]    ReDim Arr(1 To 100, 1 To 5) ' co the thay the cai nay theo yeu cau[/B]
            k = 0
           ' Có thể thay thế chỗ này bằng For Each
            Call GPE01(Sheet1, Arr, k)
            Call GPE01(Sheet2, Arr, k)
            Call GPE01(Sheet3, Arr, k)
            Sheet4.Range("A4").Resize(k, 5) = Arr


End Sub
Hoặc sử dụng Sub GPE02 này cũng được
Mã:
Sub GPE02()
    Dim WS As Worksheet
    Dim Arr()
    Dim k As Long
    ReDim Arr(1 To 100, 1 To 5)
            k = 0
            
            For Each WS In Worksheets
                If (WS.Name <> "KET QUA") Then
                    Call GPE01(WS, Arr, k)
                End If
            Next
            Sheet4.Range("E4").Resize(k, 5) = Arr


End Sub
 
Lần chỉnh sửa cuối:
Thanks bạn. Để mình kiếm mấy tài liệu về đọc về code của excel, mình chưa đụng mấy cái này bao giờ
 
có được sử dụng bảng phụ hay cột phụ để làm không bạn
 
Cái này chỉ liệt kê được một sheet thôi, dù sao cũng thanks bạn
 
Thử xem code bên dưới xem.Bạn tự sắp xếp nha. Và có thể dùng For để thay thế nếu Call được gọi nhiều lần
Cái này tôi viết theo kiểu sử dụng vòng lặp để cho các bạn khác tham gia học hỏi, bài này có nhiều cách làm, copy cũng là 1 cách

[/CODE]
Em muốn count số dòng có dữ liệu ở sheet A, sau đó dùng hàm lấy đúng số dòng của sheet A đó, rồi tiếp tục qua sheet B,C.
Tuy nhiên lại không biết viết hàm nào, bác chỉ em với được không.
Tiện thể theo như cách của bạn "đỗ thị mai" ở trên thì có cách nào dùng hàm RANk để xếp thứ tự cho cả 3 sheet được không.
VD: A4 sheet 1 là rank 3, A4 sheet 2 là rank 2, A4 sheet 3 là rank 1
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom