Giúp em tách dữ liệu thành nhiều sheets theo điều kiện (1 người xem)

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

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

nvtnet

Thành viên thường trực
Tham gia
31/5/11
Bài viết
269
Được thích
15
Em có 1 sheets dữ liệu, em muốn lọc và tách dữ liệu từ sheet này vào các sheets đã có mẫu sẵn. mong được mọi người giúp đỡ ạ.
 

File đính kèm

Em có 1 sheets dữ liệu, em muốn lọc và tách dữ liệu từ sheet này vào các sheets đã có mẫu sẵn. mong được mọi người giúp đỡ ạ.
Theo yêu cầu của bạn, code cho loc dữ liệu Sheets("SONG"):
PHP:
  Dim a(), b(), i&, k%, LR, j%
    With Sheets("DL")
        a = .Range("B2", .Range("B65000").End(3)).Resize(, 11).Value
        LR = UBound(a)
    End With
    ReDim b(1 To LR, 1 To 11)
    With Sheets("DL")
        For i = 1 To LR
            If a(i, 3) <> Empty And a(i, 11) = "s" & ChrW(7889) & "ng" Then
                k = k + 1: b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2): b(k, 4) = a(i, 3): b(k, 10) = a(i, 9)
                b(k, 11) = a(i, 10)
            End If
        Next i
        Sheets("SONG").Range("A12:K140").ClearContents
        If k Then
            With Sheets("SONG")
                .Range("A12").Resize(k, 11) = b
                .Rows(k + 12 & ":140").Hidden = True
            End With
        End If
    End With
 
cái này là tạo nút lệnh, hay copy trực tiếp vào VBA của sheets "song" vậy bác
Bài đã được tự động gộp:

Theo yêu cầu của bạn, code cho loc dữ liệu Sheets("SONG"):
PHP:
  Dim a(), b(), i&, k%, LR, j%
    With Sheets("DL")
        a = .Range("B2", .Range("B65000").End(3)).Resize(, 11).Value
        LR = UBound(a)
    End With
    ReDim b(1 To LR, 1 To 11)
    With Sheets("DL")
        For i = 1 To LR
            If a(i, 3) <> Empty And a(i, 11) = "s" & ChrW(7889) & "ng" Then
                k = k + 1: b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2): b(k, 4) = a(i, 3): b(k, 10) = a(i, 9)
                b(k, 11) = a(i, 10)
            End If
        Next i
        Sheets("SONG").Range("A12:K140").ClearContents
        If k Then
            With Sheets("SONG")
                .Range("A12").Resize(k, 11) = b
                .Rows(k + 12 & ":140").Hidden = True
            End With
        End If
    End With
nếu được bác làm trên file cả các sheets còn lại, rồi cho em xin đc không ạ. em tưởng đơn giản, chứ thế này chắc em không vận dụng được híc. cảm ơn bác nhiều ạ
 
Lần chỉnh sửa cuối:
Giúp em với ạ
 
mình làm rồi nhưng không được
Bài đã được tự động gộp:

khi chạy nó không hiện tên module , bảng module trống không
Thử copy sub này chay coi
Mã:
Sub ABC ()
  Dim a(), b(), i&, k%, LR, j%
    With Sheets("DL")
        a = .Range("B2", .Range("B65000").End(3)).Resize(, 11).Value
        LR = UBound(a)
    End With
    ReDim b(1 To LR, 1 To 11)
    With Sheets("DL")
        For i = 1 To LR
            If a(i, 3) <> Empty And a(i, 11) = "s" & ChrW(7889) & "ng" Then
                k = k + 1: b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2): b(k, 4) = a(i, 3): b(k, 10) = a(i, 9)
                b(k, 11) = a(i, 10)
            End If
        Next i
        Sheets("SONG").Range("A12:K140").ClearContents
        If k Then
            With Sheets("SONG")
                .Range("A12").Resize(k, 11) = b
                .Rows(k + 12 & ":140").Hidden = True
            End With
        End If
    End With
End sub
 
.
 
Lần chỉnh sửa cuối:
cảm ơn các bác, em làm được rồi ạ, mới quen VBA nên còn hơi kém.
 
@syquyen1987
bác có thể chỉnh để ẩn đi các dòng mà số lượng bằng 0 ở các sheets con được không ạ
Bài đã được tự động gộp:

Bạn đang muốn nhờ ai thế. Nhờ thớt hay 1 trong những người trong này vậy
Em mới quen VBA nên không hiểu lắm, nên lúc đầu chưa biết là tạo nút lệnh để nhập code, em cứ đi tạo module nên nó không chạy.
có điều code này lọc bị thiếu trường, vi dụ đồ sống có 15 mã chẳng hạn thì nó chỉ lọc đc 13 mã
 
Lần chỉnh sửa cuối:
em cũng muốn tách theo tên khách hàng mà làm theo mãi không được, ai giúp em với ạ
 

File đính kèm

Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Bạn chưa sửa các từ viết tắt "e, đc, vs, k"
Bài đã được tự động gộp:


Trong file của bạn đâu là dữ liệu gốc, đâu là kết quả mong muốn nhỉ?
dữ liệu mình nhập 1 số hàng làm mẫu, còn kết quả là mình muốn tách thành nhiều file con mỗi file là 1 khách hàng khác nhau
 
dữ liệu mình nhập 1 số hàng làm mẫu, còn kết quả là mình muốn tách thành nhiều file con mỗi file là 1 khách hàng khác nhau
Chủ đề của bài này là: "Giúp em tách dữ liệu thành nhiều sheets theo điều kiện".
Vậy bạn phải lập một chủ đề mới vào box: "Lập trình", nếu không sẽ vi phạm nội quy diễn đàn bạn nhé.
 
Chủ đề của bài này là: "Giúp em tách dữ liệu thành nhiều sheets theo điều kiện".
Vậy bạn phải lập một chủ đề mới vào box: "Lập trình", nếu không sẽ vi phạm nội quy diễn đàn bạn nhé.
mình cũng muốn tách thành nhiều sheets thôi, tương tự bạn trên tách theo thực phẩm vậy, nhưng mình là tên khách hàng
 
em cũng muốn tách theo tên khách hàng mà làm theo mãi không được, ai giúp em với ạ
Góp ý cho bạn:
1/ Bạn mới tham gia diễn đàn thì nên nhấn nút thích để cho biết bạn có quan tâm đến bài viết, đồng thời tỏ lòng cám ơn người khác đã bỏ công giúp cho mình.
2/ Nếu bạn sử dụng File trên vào mục đích nhập liệu, tạo hóa đơn bán hàng hoặc phiếu xuất kho thì nên sử dụng SheetForm và nên có Hình mẫu để người giúp đưa ra giải pháp khác nhanh, lẹ, phù hợp hơn.
3/ Danh mục Tên hàng nên để riêng 1 sheet như cách tôi làm trong File.
4/ Nên sử dụng Listbox với UserForm sẽ trực quan và nhìn được 3 cột của danh mục, có thể tìm như Google để chọn nhập liệu nhiều hàng hóa cùng lúc kiểu bạn làm phải chọn từng cái và đặc biệt là bạn cần phải nhớ mã hàng nên dễ bị sai (trong kế toán nếu sai 1 ly có thể đi một dặm).
5/ Dùng thử File, vào sheet DuLieu nhấn nút để xem kết quả.

Nếu bạn muốn làm như kiểu tôi góp ý thì nên mở Topic mới trong Box Lập trình với Excel.
 

File đính kèm

Lần chỉnh sửa cuối:

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

Back
Top Bottom