Xin giúp trích xuất dữ liệu cột vào sheet bằng VBA

Liên hệ QC

madman3575

Thành viên mới
Tham gia
3/12/14
Bài viết
23
Được thích
1
Do số lượng dữ liệu lớn và lại phải trích xuất dữ liệu thường xuyên... làm bằng tay hoài không tiện mà lại em kém VBA macro quá... hì hục mấy ngày nay trên diễn đàn mà không sao làm đuợc cái macro này,
Mong các anh có kinh nghiệm giúp với, nội dung trong file em đính kèm
cảm ơn cả nhà
 

File đính kèm

  • xuat BC theo dieu kien.xlsx
    182.5 KB · Đọc: 53
Do số lượng dữ liệu lớn và lại phải trích xuất dữ liệu thường xuyên... làm bằng tay hoài không tiện mà lại em kém VBA macro quá... hì hục mấy ngày nay trên diễn đàn mà không sao làm đuợc cái macro này,
Mong các anh có kinh nghiệm giúp với, nội dung trong file em đính kèm
cảm ơn cả nhà
Không hiểu sao bên Sheet "products" lại có 2 cột cùng lấy dữ liệu của cột J và cột B?
======================
P/S: Bạn nhập thêm kết quả mong muốn của 1 mã sang bên sheet products để các thành viên còn đối chiếu kết quả nhé!
 
Lần chỉnh sửa cuối:
Upvote 0
Do số lượng dữ liệu lớn và lại phải trích xuất dữ liệu thường xuyên... làm bằng tay hoài không tiện
Mong các anh có kinh nghiệm giúp với, nội dung trong file em đính kèm
cảm ơn cả nhà

Một số điều cần làm rõ giữa bạn & cộng đồng như sau:

(1) Chép dữ liệu sang trang mới xong có xóa dòng dữ liệu đó đi không (đoán là không)

(2) Bên trang cần chép dữ liệu đến không có cột (trường) [So Chung Tu], vậy bạn hay ai đó vận hành bấm chục lần cái nút đó thì sao?
Ý mình là cần có 1 cột này để kiểm tra xem đã có nó hay chưa; khi chưa có hãy chép.

Mong í kiến từ bạn!
 
Upvote 0
Không hiểu sao bên Sheet "products" lại có 2 cột cùng lấy dữ liệu của cột J và cột B?
======================
P/S: Bạn nhập thêm kết quả mong muốn của 1 mã sang bên sheet products để các thành viên còn đối chiếu kết quả nhé!

Cảm ơn bạn đã quan tâm, vì muốn sử dụng code để lam mã vạch luôn. Mong bạn giúp
 
Upvote 0
Một số điều cần làm rõ giữa bạn & cộng đồng như sau:

(1) Chép dữ liệu sang trang mới xong có xóa dòng dữ liệu đó đi không (đoán là không)

(2) Bên trang cần chép dữ liệu đến không có cột (trường) [So Chung Tu], vậy bạn hay ai đó vận hành bấm chục lần cái nút đó thì sao?
Ý mình là cần có 1 cột này để kiểm tra xem đã có nó hay chưa; khi chưa có hãy chép.

Mong í kiến từ bạn!

1- vâng, chỉ cần chép đi thôi ạ (nếu tạo thành file mới với tên products.xlx, thay vì tạo sheet thì tốt quá).
2- thật sự mình cũng chưa nghỉ đến, nhưng nếu chép đè lên (sheet hoặc file) thì tốt nhất.
nếu "số chứng từ" không có thì kết thúc và không chép gì cả.
mong bạn giúp, vì mình kém vba quá... Nghiên cứu mấy ngày nay trên diễn đàn và google ma kg được, cảm ơn ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn ơi mình muốn thêm code sao cho vẫn giữ lại dữ liệu cũ, và cập nhật dữ liệu mới xuống các hàng tiếp theo. Thanks bạn

Sửa lại code post #9 như này xem:
[GPECODE=vb]
Option Explicit
Public Sub Loc()
Dim i As Long, j As Long, d As Long, Lr As Long, R As Long
Dim Arr(), sArr(), Dk As String, Kq()
Lr = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
sArr = Sheet2.Range("A5:M" & Lr).Value
Arr = Array(10, 9, 2, 12, 7, 2)
ReDim Kq(1 To UBound(sArr), 1 To 6)
Dk = Sheet2.Range("B1")
For i = 1 To UBound(sArr)
If sArr(i, 1) = Dk Then
d = d + 1
For j = 0 To UBound(Arr)
Kq(d, j + 1) = sArr(i, Arr(j))
Next j
End If
Next i
'Sheet1.Range("A2:F10000").ClearContents
R = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
Sheet1.Range("A2").Offset(R - 1, 0).Resize(d, 6) = Kq
End Sub
[/GPECODE]
 
Upvote 0
Bạn ơi mình muốn thêm code sao cho vẫn giữ lại dữ liệu cũ, và cập nhật dữ liệu mới xuống các hàng tiếp theo. Thanks bạn
Nếu vậy bạn copy toàn bộ các cột liên quan sang luôn cần chi phải lọc nữa cho mất thời gian??? Mà tốt nhất bạn nên đưa File nên nói rõ yêu cầu của bạn!
 
Upvote 0
Sửa lại code post #9 như này xem:
[GPECODE=vb]
Option Explicit
Public Sub Loc()
Dim i As Long, j As Long, d As Long, Lr As Long, R As Long
Dim Arr(), sArr(), Dk As String, Kq()
Lr = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
sArr = Sheet2.Range("A5:M" & Lr).Value
Arr = Array(10, 9, 2, 12, 7, 2)
ReDim Kq(1 To UBound(sArr), 1 To 6)
Dk = Sheet2.Range("B1")
For i = 1 To UBound(sArr)
If sArr(i, 1) = Dk Then
d = d + 1
For j = 0 To UBound(Arr)
Kq(d, j + 1) = sArr(i, Arr(j))
Next j
End If
Next i
'Sheet1.Range("A2:F10000").ClearContents
R = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
Sheet1.Range("A2").Offset(R - 1, 0).Resize(d, 6) = Kq
End Sub
[/GPECODE]

Thanks bạn đã giúp đỡ, code quá ổn luôn
 
Upvote 0
gởi chuot0106
không nhập bằng tay ở ô b2 được. Chỉ chọn được kiểu dử liệu trong danh sách xổ xuống. sửa code lại bạn ơi
 
Upvote 0
gởi chuot0106
không nhập bằng tay ở ô b2 được. Chỉ chọn được kiểu dử liệu trong danh sách xổ xuống. sửa code lại bạn ơi
Cái này không liên quan tới code mà là do cài đặt trong Data validation. Bạn chình lại là nhập được thôi mà! Đề tài lâu quá rồi!
 
Upvote 0
mình chưa hiểu lắm bạn có thể giải thích thêm về code này không
 
Upvote 0
Web KT
Back
Top Bottom