lọc đơn hàng

Liên hệ QC

NguyenthiH

Thành viên mới đăng ký
Tham gia
11/12/16
Bài viết
946
Được thích
172
Giới tính
Nữ
Em nhờ các anh chị giúp em lọc đơn hàng giống như file đính kèm ạ.
 

File đính kèm

  • GPE.xlsb
    12.4 KB · Đọc: 18
Em nhờ các anh chị giúp em lọc đơn hàng giống như file đính kèm ạ.
bạn thích dùng code VBA hay công thức
Bài đã được tự động gộp:

Em nhờ các anh chị giúp em lọc đơn hàng giống như file đính kèm ạ.
Trích dẫn NguyenThiH -" Thành viên mù VBA" lại post bài trong diễn đàn -> Lập trình với excel
có sự mâu thuẫn không hề nhẹ
 
Upvote 0
Đây mới thực sự là Filter nè:
PHP:
Sub AdvancedFilter()
    Sheets("Sheet1").Range("B3").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("B1:B2"), CopyToRange:=Range("A4:H4"), Unique:=False
End Sub

Muốn nó chạy đúng, ta cần áp công thức =Sheet1!E3 tại Sheet2!B1 & áp font chữ ô này màu trắng càng hay!
 
Upvote 0
Xin các anh chị cho thêm cách không dùng AdvancedFilter nữa ạ ?
 
Upvote 0
Rỗi việc làm thử macro sự kiện này tại Sheet2, bạn thử đi nha:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [B2]) Is Nothing Then
    Dim Rws As Long, J As Long, W As Integer, Dm As Integer, Col As Integer
    Dim Arr(), Sh As Worksheet

    With Sheet1
        Rws = .[b4].CurrentRegion.Rows.Count
        Arr() = .[b4].Resize(Rws, 10).Value
        ReDim dArr(1 To Rws, 1 To 8)
        [A5].Resize(Rws, 8).Value = dArr()
        For J = 1 To UBound(Arr())
            If Target.Value = Arr(J, 4) Then
                W = W + 1
                For Dm = 1 To 8
                    If Dm > 2 Then Col = 2 Else Col = 0
                    dArr(W, Dm) = Arr(J, Dm + Col)
                Next Dm
            End If
        Next J
    End With
    If W Then
        [A5].Resize(W, 8).Value = dArr()
    End If
 End If
End Sub
 
Upvote 0
Sao em thử code Bác @SA_DQ thấy không ra kết quả Bác ơi.
 
Upvote 0
. . . .GPE.COM . . . . . . . . . . . . .
 

File đính kèm

  • Array.rar
    15.6 KB · Đọc: 15
Upvote 0
Sao em gõ đơn hàng vào B2 Sheet2 không thấy hiện kết quả vậy Bác SA_DQ ơi.
Ví dụ em gõ PO28630 vào B2!sheet2 không thấy gì hết.
 
Upvote 0
. . . . . .=========>>>>>>
 

File đính kèm

  • Đơn hàng.JPG
    Đơn hàng.JPG
    75.9 KB · Đọc: 17
Upvote 0
Xin lỗi Bác SA_DQ! vì em gõ "po28630", bắt buộc phải gõ "PO28630".
Có cách nào gõ "po28630" cũng ra kết quả vậy Bác.
 
Upvote 0
Xin lỗi Bác SA_DQ! vì em gõ "po28630", bắt buộc phải gõ "PO28630".
Có cách nào gõ "po28630" cũng ra kết quả vậy Bác.

Thêm dòng này vô dòng đâu tiên của module để nó tìm không phân biệt chưa Hoa hay thường. (dòng đầu của màn hình code, trước tất cả các dòng private sub....)
Option Compare Text
 
Upvote 0
Cám ơn anh Bảo nhiều!
 
Upvote 0
Bác @SA_DQ có thể giúp em code có thể dùng change hai lần được không ạ.
Tức là khi có thay đổi ở cell B2 cũng chạy worksheet_Change, mà có thay đổi ở cell B12 cũng chạy worksheet_change.
Em xin đưa file.
 

File đính kèm

  • GPE(1).xlsb
    14.7 KB · Đọc: 9
Lần chỉnh sửa cuối:
Upvote 0
Bác @SA_DQ có thể giúp em code có thể dùng change hai lần được không ạ.
Tức là khi có thay đổi ở cell B2 cũng chạy worksheet_Change, mà có thay đổi ở cell B12 cũng chạy worksheet_change.
Em xin đưa file.
Hình như bố trí chưa hợp lý ví dụ đơn hàng nhiều hơn 10 dòng thì sao hay tối đa "po" chỉ 5 dòng đổ lại
 
Upvote 0
Đúng anh, một PO tối đa chỉ 5 dòng đổ lại ạ.
Mong các anh chị giúp.
 
Upvote 0
bắt buộc phải gõ "PO28630".Có cách nào gõ "po28630" cũng ra kết quả vậy Bác.
Đó là mã; Mà đã là 'Mã' thì xài đồng loại ký tự hoa; Chuyện này ngừa chuyện lúc cần sắp xếp các mã HH

Làm việc với CSDL mà tùy tiện quá nhiều bậc tự do thì có ngày à nha!

có thể dùng change hai lần được không ạ.
Thế nào là 'change 2 lần'?

Phải chăng đụng đến ô nào trong 2 ô macro đều 'chạy'?
Nếu là vậy thì thử vói nhóm macro này (để trong Sheet2):
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B2]) Is Nothing Then
    XaiChung2SuKien Sheet1, Target.Value
ElseIf Not Intersect(Target, [B12]) Is Nothing Then
    XaiChung2SuKien Sheet3, Target.Value
End If
End Sub
Mã:
Sub XaiChung2SuKien(Sh As Worksheet, MaHH As String)
  Sh.Select
  MsgBox Sh.Name, ,MaHH
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Chỉ B2 và B12 thôi Bác SA_DQ.
 
Upvote 0
code lọc thì gán làm sao Bác SA_DQ?
 
Upvote 0
Chép & thử với 2 macro vô Sheet2 chưa?
 
Upvote 0
Web KT
Back
Top Bottom