Tùy điều kiện để thể hiện danh sách Lits box trên Form (1 người xem)

Liên hệ QC

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

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,063
Được thích
175
Nhờ anh chị giúp đỡ trường hợp sau:
Tại Sheet TH, Cột K, bấm tổ hợp phím "Ctrl+Shift+t" sẽ hiện form, ta có thể tùy chọn mã hàng
Tuy nhiên do danh sách hàng rất nhiều dễ nhầm lẫn nên em muốn
Tùy điều kiện để thể hiện danh sách Lits box trên Form như sau
theo Tại Sheet TH, Nếu cell H9 hay I9 được chọn 1 số cụ thể nào đó thì tại cell K9 sẽ thể hiện List box theo điều kiện cụ thể như sau

Nếu cell H9 hay cell I91561 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ H (Ví dụ H001, H002, …)
Nếu cell H9 hay cell I9152 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ L (Ví dụ L001, L002, …)
Nếu cell H9 hay cell I9153 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ D (Ví dụ D001, D002, …)
Nếu cell H9 hay cell I9155 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ P (Ví dụ P001, P002, …)
Nếu cell H9 hay cell I9là trống hoặc khác với 1561, 152, 153, 155 thì Listbox chỉ thể hiện những mặt hàng có có đầy đủ như bên sheet MA

-----------------
File này em tìm được trên GPE, nên không biết sửa sao
Ý tưởng của em là vậy, không biết có thể thực hiện được không, nhờ các anh chị hướng dẫn và viết code giúp
Em cảm ơn!
 

File đính kèm

Nhờ anh chị giúp đỡ trường hợp sau:
Tại Sheet TH, Cột K, bấm tổ hợp phím "Ctrl+Shift+t" sẽ hiện form, ta có thể tùy chọn mã hàng
Tuy nhiên do danh sách hàng rất nhiều dễ nhầm lẫn nên em muốn
Tùy điều kiện để thể hiện danh sách Lits box trên Form như sau
theo Tại Sheet TH, Nếu cell H9 hay I9 được chọn 1 số cụ thể nào đó thì tại cell K9 sẽ thể hiện List box theo điều kiện cụ thể như sau

Nếu cell H9 hay cell I91561 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ H (Ví dụ H001, H002, …)
Nếu cell H9 hay cell I9152 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ L (Ví dụ L001, L002, …)
Nếu cell H9 hay cell I9153 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ D (Ví dụ D001, D002, …)
Nếu cell H9 hay cell I9155 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ P (Ví dụ P001, P002, …)
Nếu cell H9 hay cell I9là trống hoặc khác với 1561, 152, 153, 155 thì Listbox chỉ thể hiện những mặt hàng có có đầy đủ như bên sheet MA

-----------------
File này em tìm được trên GPE, nên không biết sửa sao
Ý tưởng của em là vậy, không biết có thể thực hiện được không, nhờ các anh chị hướng dẫn và viết code giúp
Em cảm ơn!
Cái này thì đơn giản nhưng phải kiểm chứng lại cho chắc ăn thế này:
Nếu H9 = 1562 và I9=152 thì lấy danh sách thế nào? Nếu H9 và I9 không có dữ liệu thì sao?
 
Upvote 0
Cái này thì đơn giản nhưng phải kiểm chứng lại cho chắc ăn thế này:
Nếu H9 = 1562 và I9=152 thì lấy danh sách thế nào
Thì Listbox thể hiện những mặt hàng có đầy đủ như bên sheet MA

Cái này thì đơn giản nhưng phải kiểm chứng lại cho chắc ăn thế này:

Nếu H9 và I9 không có dữ liệu thì sao?
Như đã nói ở trên
Nếu cell H9 cell I9 là trống hoặc khác với 1561, 152, 153, 155 thì Listbox thể hiện những mặt hàng có đầy đủ như bên sheet MA

Mong bạn giúp đỡ!
 
Lần chỉnh sửa cuối:
Upvote 0
Nhờ anh chị giúp đỡ trường hợp sau:
Tại Sheet TH, Cột K, bấm tổ hợp phím "Ctrl+Shift+t" sẽ hiện form, ta có thể tùy chọn mã hàng
Tuy nhiên do danh sách hàng rất nhiều dễ nhầm lẫn nên em muốn
Tùy điều kiện để thể hiện danh sách Lits box trên Form như sau
theo Tại Sheet TH, Nếu cell H9 hay I9 được chọn 1 số cụ thể nào đó thì tại cell K9 sẽ thể hiện List box theo điều kiện cụ thể như sau

Nếu cell H9 hay cell I91561 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ H (Ví dụ H001, H002, …)
Nếu cell H9 hay cell I9152 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ L (Ví dụ L001, L002, …)
Nếu cell H9 hay cell I9153 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ D (Ví dụ D001, D002, …)
Nếu cell H9 hay cell I9155 thì Listbox chỉ thể hiện những mặt hàng có Mã bắt đầu là chữ P (Ví dụ P001, P002, …)
Nếu cell H9 hay cell I9là trống hoặc khác với 1561, 152, 153, 155 thì Listbox chỉ thể hiện những mặt hàng có có đầy đủ như bên sheet MA

-----------------
File này em tìm được trên GPE, nên không biết sửa sao
Ý tưởng của em là vậy, không biết có thể thực hiện được không, nhờ các anh chị hướng dẫn và viết code giúp
Em cảm ơn!

làm việc với Form thì vẽ ra 1 cái ô trên Form mà xét , sao lại dựa vào ô H9, I9 làm gì ?
 
Upvote 0
1/ Bạn vào vùng Code của Form thêm 1 hàm UDF sau xuống dưới:

Mã:
Private Function nArr(Tm As Variant, Dk1, Dk2)
Dim Mg(), i, j, n, Kt
Kt = Switch(Dk1 = 1561, "H", Dk1 = 152, "L", Dk1 = 153, "D", Dk1 = 155, "P")
If IsNull(Kt) Then Kt = Switch(Dk2 = 1561, "H", Dk2 = 152, "L", Dk2 = 153, "D", Dk2 = 155, "P")
If IsNull(Kt) Then Kt = "*"
For i = 1 To UBound(Tm, 1)
If Tm(i, 1) Like Kt & "*" Then
j = j + 1
ReDim Preserve Mg(1 To UBound(Tm, 2), 1 To j)
For n = 1 To UBound(Tm, 2)
Mg(n, j) = Tm(i, n)
Next
End If
Next
nArr = WorksheetFunction.Transpose(Mg)
End Function

2/ Sửa Code bạn đã viết như sau:
Mã:
Private Sub UserForm_Initialize()
    Dim EndR As Long
    Dim Arr()
    With Sheets("MA")
        EndR = .Cells(65000, 4).End(xlUp).Row
        Arr = .Range(.Cells(12, 1), .Cells(EndR, 4)).Value
    End With
    With Me.MHList
        .ColumnCount = 3
[COLOR=#ff0000]        .List = nArr(Arr, Sheet2.[H9], Sheet2.[I9])[/COLOR]
    End With
    
    NhomHang.SetFocus
    Erase Arr
End Sub

Giờ bạn test thử xem sao
 
Upvote 0
thấy Form là không biết làm rồi...Chạy....haha

Thấy chưa được thì phải góp ý chứ.

Tìm mà không nhập liệu, vậy tìm làm chi ta ??????

Vậy phải thêm 1 số Control nữa, để khi tìm nó load lên UserForm để còn sửa hoặc thêm vào những cái chưa có chứ.
 
Upvote 0
1/ Bạn vào vùng Code của Form thêm 1 hàm UDF sau xuống dưới:



2/ Sửa Code bạn đã viết như sau:


Giờ bạn test thử xem sao
Em đã test thì cho kết quả sau:
Nếu cell H9 hay I9 chọn 1561 thì tại K9 form sẽ cho List box các mặt hàng có mã bắt đầu là H (trường hợp này đúng)
Tiếp tục cell H10 hay I10 chọn 153 thì tại K10 form sẽ cho List box các mặt hàng có mã bắt đầu là H (đúng là bắt đầu D)
Nghĩa là List box không thay đổi theo số tài khoản đã chọn trong cột H hay I
Nhờ anh xem giúp
 
Upvote 0
Em đã test thì cho kết quả sau:
Nếu cell H9 hay I9 chọn 1561 thì tại K9 form sẽ cho List box các mặt hàng có mã bắt đầu là H (trường hợp này đúng)
Tiếp tục cell H10 hay I10 chọn 153 thì tại K10 form sẽ cho List box các mặt hàng có mã bắt đầu là H (đúng là bắt đầu D)
Nghĩa là List box không thay đổi theo số tài khoản đã chọn trong cột H hay I
Nhờ anh xem giúp
Vậy bạn sửa lại thế này nhé, trong code sau bạn thay ngay dòng màu đỏ:
Mã:
Private Sub UserForm_Initialize()
    Dim EndR As Long
    Dim Arr()
    With Sheets("MA")
        EndR = .Cells(65000, 4).End(xlUp).Row
        Arr = .Range(.Cells(12, 1), .Cells(EndR, 4)).Value
    End With
    With Me.MHList
        .ColumnCount = 3
[B][COLOR=#ff0000]        .List = nArr(Arr, ActiveCell.Offset(, -3), ActiveCell.Offset(, -2))[/COLOR][/B]
    End With
    
    NhomHang.SetFocus
    Erase Arr
End Sub
 
Upvote 0
Yêu cầu của bạn nếu chỉ 1 cột đáp ứng tiêu chuẩn thì chẳng có gì đáng nói, nhưng lại có cả 2 cột thỏa điều kiện thì biết theo ai đây? Mình cũng có nghĩ hay là theo cả 2 tức là lọc cả 2? Nếu vậy thì vô tình có thể con ông chú đứng nhầm hàng con ông bác, vậy nên tôi tạm ưu tiên cột H nếu cột H không yêu cầu thì mới hỏi cột I. Nếu cả 2 cột không thỏa thì toàn dân trình diện. Bạn yêu cầu cho ô H9 và I9 thì mình tạm viết như vậy. Còn muốn động thì phải điều chỉnh. Nhất là Code mình mới viết để giải quyết mục đích đã còn chưa chặn lỗi hay các trường hợp cá biệt.
Nếu có yêu cầu khác đi thì phải nói rõ hơn anh em mới hiểu và code cũng mới hiểu.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom