Lấy thông tin 1 mã từ nhiều sheet vào 1 sheet (2 người xem)

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

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

Thbv

Thành viên hoạt động
Tham gia
3/5/19
Bài viết
102
Được thích
10
Có 4 sheet là sheet 1,2,3 và sheet "Loc1donvi". Nhập mã vào D3 của sheet "Loc1donvi" sẽ copy tất cả dữ liệu của mã đó ở các sheet 1,2,3 (có bao nhiêu dòng mã đó đều copy tất cả dòng nối đuôi nhau) và thêm cho mình tên sheet đã copy mã đó vào cột B của sheet "Loc1donvi". Ví dụ lọc 1 mã kết quả như ở sheet "Loc1donvi". Xin cảm ơn
 

File đính kèm

Có 4 sheet là sheet 1,2,3 và sheet "Loc1donvi". Nhập mã vào D3 của sheet "Loc1donvi" sẽ copy tất cả dữ liệu của mã đó ở các sheet 1,2,3 (có bao nhiêu dòng mã đó đều copy tất cả dòng nối đuôi nhau) và thêm cho mình tên sheet đã copy mã đó vào cột B của sheet "Loc1donvi". Ví dụ lọc 1 mã kết quả như ở sheet "Loc1donvi". Xin cảm ơn
Bạn thử:
PHP:
Sub Test()
  Application.ScreenUpdating = False
    Dim a, b(1 To 65000, 1 To 15), LR, Sh As Worksheet, LastR As Long, i, j, k, DK
    LastR = Sheets("Loc1donvi").Range("B" & Rows.Count).End(3).Row
    Sheets("Loc1donvi").Range("c5:q" & LastR).ClearContents
    DK = Sheets("Loc1donvi").Range("D3")
    For Each Sh In ThisWorkbook.Worksheets
          If Sh.Name <> "Loc1donvi" Then
               LR = Sh.Range("a" & Rows.Count).End(3).Row
                      a = Sh.Range("A2:N" & LR).Value
                      For i = 1 To UBound(a)
                          If a(i, 1) = DK Then
                             k = k + 1
                             b(k, 1) = Sh.Name
                             For j = 2 To 15
                                 b(k, j) = a(i, j - 1)
                             Next j
                          End If
                      Next i
             End If
    Next
    Sheets("Loc1donvi").Range("B5:P5").Resize(k).Value = b
    Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
PHP:
LastR = Sheets("Loc1donvi").Range("B" & Rows.Count).End(3).Row
If LastR > 5 Then Sheets("Loc1donvi").Range("c5:q" & LastR).ClearContents
Theo tôi thì ClearContents 1000 dòng hay 10 dòng cũng không làm "con mắt phân biệt được".
Thay vì phải tìm dòng cuối, rồi IF... rồi xóa chi bằng Range("C5:Q1000").ClearContents luôn cho rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
Hình như phải sửa câu trên thành
For j = 2 To 15
thì phải!?
Cho hỏi thêm, tại sao phải
If LR > 6 Then
vì các sheet 1;2;3 chỉ cần
If LR > 2 Then
Nghĩa là có dữ liệu trong các sheet này rồi
Cảm ơn bạn!
Chuẩn luôn, cảm ơn bạn. Tôi đã sửa #2
 
Upvote 0
Theo tôi thì ClearContents 1000 dòng hay 10 dòng cũng không làm "con mắt phân biệt được".
Thay vì phải tìm dòng cuối, rồi IF... rồi xóa chi bằng Range("C5:Q1000").ClearContents luôn cho rồi.
[B5].Resize([B5].CurrentRegion.Rows.Count, [B5].CurrentRegion.Columns.Count).Clear
 
Upvote 0
Cảm ơn bạn phulien1902 nhiều
 
Upvote 0
Mong bạn giúp mình thêm, nhu cầu công việc cần lấy thông tin 1 số khách hàng ở các sheet vào 1 sheet. Mong bạn giúp mình thêm. Tương tự bài trên là lấy thông tin 1 khách hàng ở nhiều sheet. Bài này lấy thông tin 1 số khách hàng ở nhiều sheet:
Mình có 4 sheet là sheet 1,2,Ma và sheet "LocKH". Nhập mã vào cột B (của sheet "Ma" từ B3 đến B20) sẽ copy tất cả dữ liệu của các mã đó ở các sheet 1,2 (có bao nhiêu dòng mã đó đều copy tất cả dòng nối đuôi nhau) và thêm cho mình tên sheet đã copy mã đó vào cột B của sheet "LocKH". Mình đính kèm file và kết quả mong muốn ở sheet "LocKH". Xin cảm ơn
 

File đính kèm

Upvote 0
Mong bạn giúp mình thêm, nhu cầu công việc cần lấy thông tin 1 số khách hàng ở các sheet vào 1 sheet. Mong bạn giúp mình thêm. Tương tự bài trên là lấy thông tin 1 khách hàng ở nhiều sheet. Bài này lấy thông tin 1 số khách hàng ở nhiều sheet:
Mình có 4 sheet là sheet 1,2,Ma và sheet "LocKH". Nhập mã vào cột B (của sheet "Ma" từ B3 đến B20) sẽ copy tất cả dữ liệu của các mã đó ở các sheet 1,2 (có bao nhiêu dòng mã đó đều copy tất cả dòng nối đuôi nhau) và thêm cho mình tên sheet đã copy mã đó vào cột B của sheet "LocKH". Mình đính kèm file và kết quả mong muốn ở sheet "LocKH". Xin cảm ơn
Tôi dựa vào bài trên để làm cho bạn
Bạn kiểm tra kỹ trước khi dùng
Mã:
Option Explicit

Sub Loc()
    Application.ScreenUpdating = False
    Dim a, b(1 To 65000, 1 To 15), lR, Sh As Worksheet, endR As Long, i As Long, j As Long, k As Long
    Dim ii As Long, Data As Variant

    Sheets("LocKH").Range("b5:q5000").ClearContents
    endR = Sheets("Ma").Range("B" & Rows.Count).End(3).Row + 1
    
    If endR < 4 Then Exit Sub
    Data = Sheets("Ma").Range("B3:B" & endR).Value    '
    endR = UBound(Data) - 1
    For Each Sh In ThisWorkbook.Worksheets

        If Sh.Name <> "LocKH" And Sh.Name <> "Ma" Then    '
            lR = Sh.Range("a" & Rows.Count).End(3).Row
            a = Sh.Range("A2:N" & lR).Value
            For i = 1 To UBound(a)
                For ii = 1 To endR
                    If a(i, 1) = Data(ii, 1) Then
                        k = k + 1
                        b(k, 1) = Sh.Name
                        For j = 2 To 15
                            b(k, j) = a(i, j - 1)
                        Next j
                    End If
                Next ii
            Next i
        End If
    Next
    If k > 0 Then
        Sheets("LocKH").Range("B5:P5").Resize(k).Value = b
    End If
    Application.ScreenUpdating = True
End Sub
 
Upvote 0
Cảm ơn bạn nhiều. Cho mình hỏi thêm nếu mình muốn lọc theo cột B (Tên khách hàng) thì sửa code trên ở đâu bạn. Mong bạn giúp thêm
 
Upvote 0
Cảm ơn bạn nhiều. Cho mình hỏi thêm nếu mình muốn lọc theo cột B (Tên khách hàng) thì sửa code trên ở đâu bạn. Mong bạn giúp thêm
không nên lọc theo tên khách hàng, vì khi tên khách hàng trùng nhau hoặc khi nhập tên mà thêm hoặc thiếu khoảng trắng thì code không cho kết quả chính xác
Nên đặt mã khách hàng là duy nhất và độ dài mã bằng nhau
 
Upvote 0
ok bạn. Nhưng nếu có file khác mã nó nằm ở cột khác thì mình sửa chỗ nào vậy bạn? Đồng thời sheet lọc khách hàng mã nó lại là dạng số nên mất số 0 đầu. Bạn giúp mình thêm với nhé? Cảm ơn bạn nhiều
 
Upvote 0
Nhưng nếu có file khác mã nó nằm ở cột khác thì mình sửa chỗ nào vậy bạn?
Nhìn file mới nói được bạn
Đồng thời sheet lọc khách hàng mã nó lại là dạng số nên mất số 0 đầu.
Để đơn giản bạn chọn cột đó (cột C) định dạng nó là Text là OK
P/s: lưu ý khi đặt mã Kh không nên có các số 0 đứng đầu
 
Upvote 0
Giả sử cột D là mã khách hàng thì sửa code chỗ nào bạn? Cảm ơn bạn
 
Upvote 0
Web KT

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

Back
Top Bottom