Gom dữ liệu từ 2 sheet theo điều kiện (1 người xem)

Liên hệ QC

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

SaveTheDay

Thành viên mới
Tham gia
30/12/09
Bài viết
26
Được thích
0
Xin xem file đính kèm
Không chuyên về VBA nên đành nhờ các cao thủ giúp đỡ viết 1 đoạn code như sau:
Ở sheet "Bao cao" khi nhập dữ liệu "A" ở ô J2 thì sẽ tự động:

#1: chỉ lấy data của "A" từ sheet "nhap": Cột "Ngay nhap"
#2: chỉ lấy data của "A" từ sheet "nhap": Cột "Chung tu"
#4: chỉ lấy data của "A" từ sheet "nhap": Cột "So luong nhap"

Bước này lấy hết data từ sheet nhập qua, tiếp theo lấy data từ sheet xuất:

#1: chỉ lấy data của "A" từ sheet "xuat": Cột "Ngay xuat"
#2: chỉ lấy data của "A" từ sheet "xuat": Cột "Ma hang"
#3: chỉ lấy data của "A" từ sheet "xuat": Cột "Dot xuat"
#5: chỉ lấy data của "A" từ sheet "xuat": Cột "So luong xuat"
#7: chỉ lấy data của "A" từ sheet "xuat": Cột "uu tien"

Sau khi lấy hết data của A từ 2 sheet "nhap" "xuat" thì sort lại theo thứ tự ngày tháng cột #1
Cuối cùng những hàng nào có dữ liệu ở cột #2 nhưng cột #3 không có thì Merge cell lại, Kết quả cuối cùng em muốn giống trong sheet " bao cao"
Tương tự khi nhập "B" vào J2 thì data của "B" sẽ được lấy như "A"
 

File đính kèm

Không có hồi âm nào, mình xin rút ngắn lại yêu cầu, để có thể có kết quả nhanh hơn:

Xin xem file đính kèm
Không chuyên về VBA nên đành nhờ các cao thủ giúp đỡ viết 1 đoạn code như sau:
Ở sheet "Bao cao" khi nhập dữ liệu "A" ở ô J2 thì sẽ tự động:

#1: chỉ lấy data của "A" từ sheet "nhap": Cột "Ngay nhap"
#2: chỉ lấy data của "A" từ sheet "nhap": Cột "Chung tu"
#4: chỉ lấy data của "A" từ sheet "nhap": Cột "So luong nhap"

Bước này lấy hết data từ sheet nhập qua, tiếp theo lấy data từ sheet xuất:

#1: chỉ lấy data của "A" từ sheet "xuat": Cột "Ngay xuat"
#2: chỉ lấy data của "A" từ sheet "xuat": Cột "Ma hang"
#3: chỉ lấy data của "A" từ sheet "xuat": Cột "Dot xuat"
#5: chỉ lấy data của "A" từ sheet "xuat": Cột "So luong xuat"
#7: chỉ lấy data của "A" từ sheet "xuat": Cột "uu tien"

Tương tự khi nhập "B" vào J2 thì data của "B" sẽ được lấy như "A"

Đến đây truớc thôi, mình đang rất cần phần này. Mong các bạn giúp đở
 
Upvote 0
Xin xem file đính kèm
Không chuyên về VBA nên đành nhờ các cao thủ giúp đỡ viết 1 đoạn code như sau:
Ở sheet "Bao cao" khi nhập dữ liệu "A" ở ô J2 thì sẽ tự động:

#1: chỉ lấy data của "A" từ sheet "nhap": Cột "Ngay nhap"
#2: chỉ lấy data của "A" từ sheet "nhap": Cột "Chung tu"
#4: chỉ lấy data của "A" từ sheet "nhap": Cột "So luong nhap"

Bước này lấy hết data từ sheet nhập qua, tiếp theo lấy data từ sheet xuất:

#1: chỉ lấy data của "A" từ sheet "xuat": Cột "Ngay xuat"
#2: chỉ lấy data của "A" từ sheet "xuat": Cột "Ma hang"
#3: chỉ lấy data của "A" từ sheet "xuat": Cột "Dot xuat"
#5: chỉ lấy data của "A" từ sheet "xuat": Cột "So luong xuat"
#7: chỉ lấy data của "A" từ sheet "xuat": Cột "uu tien"

Sau khi lấy hết data của A từ 2 sheet "nhap" "xuat" thì sort lại theo thứ tự ngày tháng cột #1
Cuối cùng những hàng nào có dữ liệu ở cột #2 nhưng cột #3 không có thì Merge cell lại, Kết quả cuối cùng em muốn giống trong sheet " bao cao"
Tương tự khi nhập "B" vào J2 thì data của "B" sẽ được lấy như "A"
Muốn code chạy không lỗi thì đừng bao giờ sử dụng Merge Cells trong bảng tính.
Thay đổi ô C3 sheet Bao cao để lọc.
 

File đính kèm

Upvote 0
Mình không chạy được bạn ơi.
Mình sài excel 2010 và chuyển file của bạn qua .xlsm rồi. Code chạy không báo lỗi nhưng không lọc được data
 
Upvote 0
Mình không chạy được bạn ơi.
Mình sài excel 2010 và chuyển file của bạn qua .xlsm rồi. Code chạy không báo lỗi nhưng không lọc được data
Chỉ nói suông không chạy được thì ai biết tại sao không chạy.
Bạn gởi cái file mà bạn nói "không chạy được" lên cho mọi người xem đi.
 
Upvote 0
Public Sub GPE()
Dim Rng(), Arr(1 To 65000, 1 To 5), I As Long, K As Long, Ten As String, Tem As String
Tem = Sheets("Bao cao").[C3].Value
With Sheets("Nhap")
Rng = .Range(.[A2], .[A65000].End(xlUp)).Resize(, 5).Value
End With
For I = 1 To UBound(Rng, 1)
Ten = Rng(I, 2)
If Ten = Tem Then
K = K + 1
Arr(K, 1) = Rng(I, 1)
Arr(K, 2) = Rng(I, 3)
Arr(K, 4) = Rng(I, 5)
End If
Next I
With Sheets("Xuat")
Rng = .Range(.[B2], .[B65000].End(xlUp)).Resize(, 7).Value
End With
For I = 1 To UBound(Rng, 1)
Ten = Rng(I, 1)
If Ten = Tem Then
K = K + 1
Arr(K, 1) = Rng(I, 4)
Arr(K, 2) = Rng(I, 5)
Arr(K, 3) = Rng(I, 6)
Arr(K, 5) = Rng(I, 7)
End If
Next I
With Sheets("Bao cao")
.[A9:E10000].ClearContents
If K Then
.[A9].Resize(K, 5).Value = Arr
.[A9].Resize(K, 5).Resize(K, 5).Sort Key1:=Range("A9"), Order1:=xlAscending
End If
End With
End Sub

Bạn đã viết dùm mình đoạn code trên. Nhưng khi mình run macro GPE, nó không báo lỗi, nhưng cũng không lọc dữ liệu. Mình không biết là sai chỗ nào.
 
Upvote 0
..................
Bạn đã viết dùm mình đoạn code trên. Nhưng khi mình run macro GPE, nó không báo lỗi, nhưng cũng không lọc dữ liệu. Mình không biết là sai chỗ nào.

Bạn có đọc bài #5 bên trên không. Thấy File mới biết được. Bạn lòng vòng mất thời gian quá.
 
Upvote 0
Bó tay bác. Cái đó chính là cái file bác gởi lên ở bài #3. File bác làm xong rồi gởi lên, mình run macro GPE, nó không báo lỗi, nhưng cũng không lọc dữ liệu. Mình không rành về VBA nên sao biết được nó có vấn đề chỗ nào
 
Upvote 0
Bó tay bác. Cái đó chính là cái file bác gởi lên ở bài #3. File bác làm xong rồi gởi lên, mình run macro GPE, nó không báo lỗi, nhưng cũng không lọc dữ liệu. Mình không rành về VBA nên sao biết được nó có vấn đề chỗ nào

Bài thầy Ba Tê không có lỗi.
Bạn làm theo các bước sau:
1/ Enable Macro
2/ Gõ chữ "A" vào ô C3 Sheet Bao cao để thấy kết quả. (chú ý có phân biêh chữ thường chữ hoa)
Lưu ý: Bạn post đoạn Code lên bài #6 nhưng bạn có biết là còn 1 đoạn Code khác tại sheet Bao Cao để gọi thủ tục GPE không?
 
Upvote 0
File bài 3 code chạy bình thường trong Excel 2003.
Bạn nói là chuyển sang 2010 nó không chạy. Vậy thì bạn gởi cái file 2010 đó lên đây.
Đến giờ tôi mở file trên bài #3, bấm code vẫn chạy. Làm sao hiểu được tại sao bạn nói không chạy.
Có thành viên nào mở bài #3 bên trên mà code không chạy giống chủ Topic thì lên tiếng dùm nhé.
Cảm ơn.
----------------
Gởi lại file này, Ô C3 không phân biệt chữ thường, chữ hoa, a hay A đều được.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
vì file thiếu hết 1 yêu cầu:

#7: chỉ lấy data của "A" từ sheet "xuat": Cột "uu tien"

Mình có thử bắt chước nhưng bị báo lỗi, đành làm phiền các bác lần chỉnh lại. Mình gởi lại file đã chỉnh, nhờ các bác chỉnh thêm yêu cầu phía trên dùm.
 

File đính kèm

Upvote 0
vì file thiếu hết 1 yêu cầu:

#7: chỉ lấy data của "A" từ sheet "xuat": Cột "uu tien"

Mình có thử bắt chước nhưng bị báo lỗi, đành làm phiền các bác lần chỉnh lại. Mình gởi lại file đã chỉnh, nhờ các bác chỉnh thêm yêu cầu phía trên dùm.
Thử lại lần nữa xem sao
 

File đính kèm

Upvote 0
Quá hoàn hảo, bạn có thể chỉ mình tài liệu, hoặc chổ học, để có thể hiểu và viết được những code hữu dụng như vậy không.
Thank
 
Upvote 0

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

Back
Top Bottom