Hiển Thị Kết Quả Tương Ứng Trong Danh Sách Bằng Code VBA Excel

Liên hệ QC

Bandit

Thành viên chính thức
Tham gia
12/9/19
Bài viết
55
Được thích
38
Chào các anh chị
Em có một danh sách phụ thuộc vào hai danh sách khác, yêu cầu sử dụng code vba để khi chọn một giá trị trong danh sách thì sẽ hiển thị các kết quả tương ứng
Trong file đính kèm có mô tả cụ thể, nhờ các anh chị trợ giúp em code với ạ, em cảm ơn
1.JPG
 

File đính kèm

  • DANH SACH PHU THUOC.xlsm
    12.4 KB · Đọc: 6
Chào các anh chị
Em có một danh sách phụ thuộc vào hai danh sách khác, yêu cầu sử dụng code vba để khi chọn một giá trị trong danh sách thì sẽ hiển thị các kết quả tương ứng
Trong file đính kèm có mô tả cụ thể, nhờ các anh chị trợ giúp em code với ạ, em cảm ơn
View attachment 248007
Hỗ trợ bạn tạo datavalidation Đại lý, bận quá nên chưa viết tiếp được.
Chỗ trái cây thì vào module sheet change viết cũng nhanh thôi
PHP:
Option Explicit
Sub Add_Valdn()
Dim sArr(), dList(), Dic As Object, Key As Variant, I As Long, R As Long, L As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("MENU")
    sArr = .Range("B2", .Range("B65000").End(xlUp).Offset(, 2)).Value
    R = UBound(sArr, 1)
    For I = 1 To R
        If .Range("G1") = sArr(I, 1) And Not Dic.exists(sArr(I, 2)) Then
        ReDim Preserve dList(L)
        Dic.Add (sArr(I, 2)), ""
        dList(L) = sArr(I, 2): L = L + 1
        End If
    Next
    With .Range("G2").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
         Operator:=xlBetween, Formula1:=Join(dList, ",")
    End With
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Hỗ trợ bạn tạo datavalidation Đại lý, bận quá nên chưa viết tiếp được.
Chỗ trái cây thì vào module sheet change viết cũng nhanh thôi
PHP:
Option Explicit
Sub Add_Valdn()
Dim sArr(), dList(), Dic As Object, Key As Variant, I As Long, R As Long, L As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("MENU")
    sArr = .Range("B2", .Range("B65000").End(xlUp).Offset(, 2)).Value
    R = UBound(sArr, 1)
    For I = 1 To R
        If .Range("G1") = sArr(I, 1) And Not Dic.exists(sArr(I, 2)) Then
        ReDim Preserve dList(L)
        Dic.Add (sArr(I, 2)), ""
        dList(L) = sArr(I, 2): L = L + 1
        End If
    Next
    With .Range("G2").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
         Operator:=xlBetween, Formula1:=Join(dList, ",")
    End With
End With
End Sub
Em cảm ơn bác nhiều ạ, có thời gian nhờ bác trợ giúp em phần đó với ạ
Phần tạo Đại Lý em thử chạy đúng rồi
 
Upvote 0
Web KT

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

Back
Top Bottom