Cần giúp đỡ về tìm giá trị trong 1 cell và show ra kết quả các dòng có liên quan

Liên hệ QC

thangcuti

Thành viên mới
Tham gia
20/11/08
Bài viết
18
Được thích
0
Thân chào các bạn,

Mình nhờ giúp đỡ xíu về Excel, VBA.

Hiện tại, mình đã nhập file inventory, và muốn tìm theo số Invoice thì sẽ xuất tất cả những dòng như G.W, N.W, COL, DESCRIPTION theo 1 dòng - và , và những dòng còn lại như P.O, Part No, Carton No. sẽ xuất ra ở dòng bên trái theo chiều dọc.

Mình đã tìm hiểu DropDown list, DataValidation, nhưng không cái nào chay được cả. Nên định nhờ cao thủ giúp mình việc này.

Hi vọng các bạn có thể giúp đỡ, hoặc chỉ mình cần ngâm cứu ntn mình sẽ tra google học tiếp. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Cám ơn nhiều,
 

File đính kèm

Mình dùng công thức này, nhưng nó không lấy được các giá trị tiếp theo. Mọi người hướng dẫn giúp với...

Sheet "P.O" ==> nhập giá trị vào ô J5 thì ô C19, D19 và các ô còn lại cũng sẽ update theo nhé, cũng sẽ lấy giá trị từ sheet "Feb12" và update tự động (mình đã NOTE lại cho các bạn xem trong file).

Vấn đề ở đây là cái Invoice có nhiều mặt hàng, mà cái công thức của mình thì nó chỉ lấy cái đầu ah, có cách nào để nó lấy các phần còn lại trong sheet "Feb12" hay không???

Công thức tham khảo từ bác Tuấn nhé:
=IF($J5="","",VLOOKUP($J5,'Feb12'!$F$4:$Q$186,4,0))
 

File đính kèm

Có ai xem dùm với, mình research google rồi vẫn chưa có kết quả...

Mod xem dùm bài viết nhé,
 
Cám ơn bạn nhé,

Cho mình hỏi thêm về công thức có được không?

Vì mình mới add thêm 1 số record mới, thì nó báo lỗi macro bắt debug "line 91" - "Cells.Find(Title(1, i + 1)).Select"

Như vậy là mình sẽ order theo name hả bạn.
 
Cám ơn bạn nhé,

Cho mình hỏi thêm về công thức có được không?

Vì mình mới add thêm 1 số record mới, thì nó báo lỗi macro bắt debug "line 91" - "Cells.Find(Title(1, i + 1)).Select"

Như vậy là mình sẽ order theo name hả bạn.

Bạn lưu ý rằng : các Title trong vùng sheet1.[C4:I4] là duy nhất (chỉ xuất hiện 1 lần trong vùng C4:I4) và phải khớp với một phần hoặc toàn bộ chuỗi trong Feb12.rows(3) . Thêm nữa, các Title trong vùng sheet1.[C4:I4] cũng chỉ xuất hiện 1 lần trong Feb12.rows(3) . Trong file ở #4 tôi đã chỉnh sửa một số lỗi trong sheet1 như sau :
DECRIPTION -> DESCRIPTION
G.W. -> G/W
N.W. -> N/W
Part No. -> Parts No.
Nếu không sửa được thì bạn gởi file lên
 
Lần chỉnh sửa cuối:
Bạn lưu ý rằng : các Title trong vùng sheet1.[C4:I4] là duy nhất (chỉ xuất hiện 1 lần trong vùng C4:I4) và phải khớp với một phần hoặc toàn bộ chuỗi trong Feb12.rows(3) . Thêm nữa, các Title trong vùng sheet1.[C4:I4] cũng chỉ xuất hiện 1 lần trong Feb12.rows(3) . Trong file ở #4 tôi đã chỉnh sửa một số lỗi trong sheet1 như sau :
DECRIPTION -> DESCRIPTION
G.W. -> G/W
N.W. -> N/W
Part No. -> Parts No.
Nếu không sửa được thì bạn gởi file lên

Mình đã sửa lại code, và set module1 vào trong file, nhưng khi chạy thì bị báo lỗi 1004, nhờ bạn check dùm xem nhé.
 

File đính kèm

Private Sub Worksheet_Change(ByVal Target As Range)
Sheets(".....sheet can tim").Select
If Target.Address = ".......o tim kiem...." Then
Selection.AutoFilter Field:=?, Criteria1:=Range("dktimkiem").Value, Operator:=xlAnd 'dat cho no mot cai name la dktimkiem . tai o do cong thuc =*& o tim kiem & *

End If

If Range("o tim kiem").Value = "" Then

Selection.AutoFilter Field:= ?' so thứ tư cua filter invoi
End If

End Sub
' zay là chỉ cần gỏ số invoi vào ô tìm kiếm sẽ liệt kê tất cả các invoi giống nhau theo hàng ngang
 
Lần chỉnh sửa cuối:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets(".....sheet can tim").Select
If Target.Address = ".......o tim kiem...." Then
Selection.AutoFilter Field:=?, Criteria1:=Range("dktimkiem").Value, Operator:=xlAnd 'dat cho no mot cai name la dktimkiem . tai o do cong thuc =*& o tim kiem & *

End If

If Range("o tim kiem").Value = "" Then

Selection.AutoFilter Field:= ?' so thứ tư cua filter invoi
End If

End Sub
' zay là chỉ cần gỏ số invoi vào ô tìm kiếm sẽ liệt kê tất cả các invoi giống nhau theo hàng ngang

Chào bạn,
Bạn có thể xem lại file của mình được ko? Vì mình tìm kiếm số Invoice, thì sẽ xuất các ô giá trị liên quan đến Invoice đó.

Error 1004:
Nếu debug, bạn sẽ thấy nó vẫn có thể tìm kiếm và nhập các giá trị như Parts No, Description.., Col, nhưng bị lỗi ở cột Quantity thì nó bắt lỗi ở ActiveSheet.Paste
 
Cám ơn bác "nginh" nhiều nhé, hiện tại đã xuất ra được theo ý muốn.
 
Bác "Nginh" cho mình hỏi,

vậy nếu mình muốn xuất giá trị của 1 ô bất kì, thì phải sửa ntn?
vd: ô Invoice và P.O no (ở dưới cùng) mình muốn đem lên trên thì ntn, vì mình có copy và change name thì ô P.O no vẫn nằm ở phía dưới của Invoice. Bác có thể chỉ cho mình được không?
 

File đính kèm

Không rõ ý bạn lắm, bạn nên đưa 1 ví dụ cụ thể là :
- Dữ liệu cần lấy theo Invoice OUT hay Invoice IN
- Cách bố trí dữ liệu trong "P.O" thế nào
 
Mình có comment trong file, cái bạn làm đã đúng hết yêu cầu, nhưng giờ sếp muốn xuất giá trị P.O ở 1 ô khác, chứ không phải là nằm dưới ô Invoice, nên mình mới "tô màu ô P.O" thành màu trắng, (tại vì không hiểu ntn?)

Xuất P.O ở mục: Style P/O /NO
Xuất Invoice (IN): ở dưới mục Our Ref
Sau khi nhập giá trị Invoice (out) mới, thì Invoice cũ sẽ mất đi (hiện tại file vừa gửi thì bị như vậy), nên nhờ bác xem lại.

Cám ơn nhiều nhiều,
 
Mình có comment trong file, cái bạn làm đã đúng hết yêu cầu, nhưng giờ sếp muốn xuất giá trị P.O ở 1 ô khác, chứ không phải là nằm dưới ô Invoice, nên mình mới "tô màu ô P.O" thành màu trắng, (tại vì không hiểu ntn?)

Xuất P.O ở mục: Style P/O /NO
Xuất Invoice (IN): ở dưới mục Our Ref
Sau khi nhập giá trị Invoice (out) mới, thì Invoice cũ sẽ mất đi (hiện tại file vừa gửi thì bị như vậy), nên nhờ bác xem lại.

Cám ơn nhiều nhiều,
xem file tổng quát ở bài #30
 
Lần chỉnh sửa cuối:
Wow, wonderful.

Cám ơn đã giúp mình nhé... tuyệt
 
Them 1 đoạn code nữa cho cái file hết bị giật...
Application.ScreenUpdating = False
Dim Title()
Title = Sheets("P.O").[C18:K18].Value
Set S = Sheets("P.O").Range("Invoice_No.").Offset(, -1)
Sheets("Feb12").Select
If WorksheetFunction.CountIf(Columns(3), S.Offset(, 1)) > 0 Then
Cells.Find(S.Offset(, 1), , , , , , True).Select
Set G = Selection
h = G.Rows.Count
Sheets("P.O").Select
If S.Row - 18 > 1 Then Rows(18 + 1).Resize(S.Row - 18 - 1).Delete
Rows(18 + 1).Resize(h).Insert
S.Offset(1, 1) = G.Offset(, 1).Value
Do
Sheets("Feb12").Select
Cells.Find(Title(1, i + 1)).Select
ActiveCell.Offset(G.Row - ActiveCell.Row).Resize(h).Copy
Sheets("P.O").Select
Cells.Find(Title(1, i + 1)).Offset(1).Select
ActiveSheet.Paste
i = i + 1
Loop Until i = [C18:K18].Columns.Count

MsgBox ("Da truy xuat du lieu xong")
Else
MsgBox "So hoa don khong hop le", vbCritical
Sheets("P.O").Select
If S.Row - 18 > 1 Then Rows(18 + 1).Resize(S.Row - 18 - 1).Delete
S.Offset(1, 1) = ""
End If
S.Offset(, 1).Select
Application.ScreenUpdating = True
End Sub
 
Code nay minh dung de tim va liet ke hang co ma gan giong nhau hoac tim chinh xac liet ke bang filter trong bang nhap xuat hang hoa. Con liet ke tat ca so invoi cua ban cung tuong tu vay thoi. Ban chi toi cach up file len di. Toi sua file cho. Toi ko tim dc cho up load file len dien dan vay. Cho email toi mail cho.
 
tôi ko up file len được. cho tôi email tôi gởi cho.
 
Cám ơn bạn thienkhoi nhé, mình đã làm được rồi.
Thanks
 
Web KT

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

Back
Top Bottom