Giúp lọc dữ liệu 1 sheet ra nhiều sheet khác nhau. (1 người xem)

Liên hệ QC

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

@baoquang

Thành viên mới
Tham gia
28/12/06
Bài viết
9
Được thích
0
Nhờ các Anh Chị trên 4rum hướng dẩn cho mình lọc 1 sheet ra nhiều sheet khác nhau, về excel mình không rành lắm, cám ơn Anh Chị hỗ trợ cho mình.
file đính kèm đây:
 

File đính kèm

Mình chỉ có thể là VBA để giúp bạn.

Tham khảo nha;

Mình đã tăng dòng tổng cộng đến 50;
 

File đính kèm

Rất cảm ơn Bạn HYen17 đã giúp mình, còn một chuyện nữa, nếu như mình muốn tăng thêm sheet nữa thì mình sẽ chỉnh sửa như thế nào trong VBA.
 
Rất cảm ơn Bạn giúp mình một chuyện nữa, nếu như mình muốn tăng thêm sheet nữa thì mình sẽ chỉnh sửa như thế nào trong VBA.

Thì tên trang tính mới fải trùng với kí hiệu số fiếu có ở cột 'B' & 'D' của trang 'TH'

& Cấu trúc cũng như 'TH' để việc chép không bị cự nự.


Thử đi bạn & chúc thành công!
 
Mình đã làm được file này nhưng có một điều mình "mò" hoài không ra là khi chuyển dữ liệu nhập dài hơn 50 dòng (vì dữ liệu của mình cả ngàn dòng) thì nó lại trở lên dòng đầu tiên
mình không biết chỉnh sửa trong VBA nhờ các bạn cao thủ hỗ trợ giúp mình, xin chân thành cám ơn.
 
Cũng là tại bạn không nói từ trước

Mình đã "mò" hoài không ra là khi chuyển dữ liệu nhập dài hơn 50 dòng (vì dữ liệu của mình cả ngàn dòng) thì nó lại trở lên dòng đầu tiên;

Mình không biết chỉnh sửa trong VBA nhờ các bạn hỗ trợ giúp mình.

Giờ có 2 cách, nhưng cách nào là tuỳ bạn:

Cách thứ 1:

(1.1) Chỉnh sửa trong thiết kế các trang tính sẽ nhận kết quả (từ trang tổng hợp):

(Cho hiện hết các dòng đang ẩn;)
Tô chọn bằng chuột các dòng từ 49 cho đến dòng 1.199 & thực hiện động tác thêm dòng; Khi đó dòng 50 cũ sẽ trở thành dòng 1.200

(1.2) Trong macro

PHP:
        Option Explicit
Sub gpeCopy()
 Dim Sh As Worksheet, Cls As Range
 Dim Col As Long:           Dim ShName As String
 Const Rws As Long = 42
 On Error Resume Next
 
 Col = [b3].CurrentRegion.Columns.Count
1 'Xoá Du Lieu Cu:'
 For Each Sh In ThisWorkbook.Worksheets
    If Sh.Name <> "TH" Then
        Sh.[A7].Resize(Rws, Col).ClearContents
        Sh.Rows("7:49").Hidden = False              '<=|'
    End If
 Next Sh
2 'Chép Sang Các Trang Tính Chi Tiét:'
 For Each Cls In Range([A6], [A65500].End(xlUp))
    If Cls.Offset(, 1).Value = "" Then
        ShName = Cls.Offset(, 3).Value
    Else
        ShName = Cls.Offset(, 1).Value
    End If
    Cls.Resize(, Col).Copy Destination:=Sheets(ShName).[G49].End(xlUp).Offset(1, -6) '<=|'
 Next Cls
 For Each Sh In ThisWorkbook.Worksheets
    If Sh.Name <> "TH" Then
        Sh.Rows("49:" & Sh.[G50].End(xlUp).Row + 2).Hidden = True        '<=|'
    End If
 Next Sh
End Sub

Ở các dòng lệnh mình đã đánh dấu bên trên, số 49 sẽ được thay bằng 1199 (& hiễn nhiên, số 50 sẽ fải được sửa thành 1200)

Cách thứ 2:

(2.1) Bạn bỏ hết các dòng hiện đang là 50 đi; (& Sau khi chạy macro, bạn sẽ thực hiện tự ên bằng tay như dòng 50 hiện hữu)

(2.2) (Như (1.2))
 
Cám ơn các bạn mình đã làm được rồi, nhưng có một điều mình muốn hỏi nếu như trường hợp này mình sử dụng hàm có phức tạp lắm không?
 
Bạn ơi theo hướng dẩn mình làm được nhưng tới sheet mà dữ liệu nhiều khi "chuyển DL" thì nó bỏ trống từ dòng thứ 7 đến 48 dòng thứ 49 mới nhận, nhưng nhận cũng không đúng theo số liệu bên TH chuyển qua.
 

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

Back
Top Bottom