tạo drop down list ở phụ thuộc vào một drop down list trước đó

Liên hệ QC

vitinhvnbmt

Thành viên hoạt động
Tham gia
30/5/09
Bài viết
108
Được thích
7
mình muốn tạo drop down list ở cột G phụ thuộc vào việc mình chọn ở cột F tương ứng.
loay hoay tìm kiếm bằng google cũng ra được một cái hướng dẫn nhưng mình đã làm theo hướng dẫn mà không ra kết quả, nhờ GPE hoàn thiện giúp?
 

File đính kèm

  • Book2.xlsx
    36.4 KB · Đọc: 24
mình muốn tạo drop down list ở cột G phụ thuộc vào việc mình chọn ở cột F tương ứng.
loay hoay tìm kiếm bằng google cũng ra được một cái hướng dẫn nhưng mình đã làm theo hướng dẫn mà không ra kết quả, nhờ GPE hoàn thiện giúp?

Alt+F11, Copy cái này vào sheet1(sheet 13)
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sArr(), I As Long, J As Long, Tem As String
If Not Intersect(Target, Range("G3:G100")) Is Nothing Then
If Target.Rows.Count = 1 Then
If Target.Offset(, -1) <> Empty Then
    sArr = Range("B2:D100").Value
    For J = 1 To UBound(sArr, 2)
        If sArr(1, J) = Target.Offset(, -1).Value Then
            For I = 2 To UBound(sArr)
                If sArr(I, J) <> Empty Then
                    Tem = Tem & sArr(I, J) & ","
                Else
                    Exit For
                End If
            Next I
            Exit For
        End If
    Next J
    With Target.Validation
        .Delete
        .Add xlValidateList, Formula1:=Tem
    End With
End If
End If
End If
End Sub
 
Cách bố trí dữ liệu của bạn chưa tổng quát, mình sửa lại chút cho tổng quát.
 

File đính kèm

  • Book2.xlsx
    36.2 KB · Đọc: 32
Cách bố trí dữ liệu của bạn chưa tổng quát, mình sửa lại chút cho tổng quát.

cảm ơn bạn. kết quả tốt hơn cả những gì mình mong đợi--=0
nhưng mình nhìn vào đó mà không biết cách làm bạn à
bạn tạo data validation như thế nào ở vùng A3:B36 đó? bạn hướng dẫn mình cụ thể hơn được không?
 
Alt+F11, Copy cái này vào sheet1(sheet 13)
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sArr(), I As Long, J As Long, Tem As String
If Not Intersect(Target, Range("G3:G100")) Is Nothing Then
If Target.Rows.Count = 1 Then
If Target.Offset(, -1) <> Empty Then
    sArr = Range("B2:D100").Value
    For J = 1 To UBound(sArr, 2)
        If sArr(1, J) = Target.Offset(, -1).Value Then
            For I = 2 To UBound(sArr)
                If sArr(I, J) <> Empty Then
                    Tem = Tem & sArr(I, J) & ","
                Else
                    Exit For
                End If
            Next I
            Exit For
        End If
    Next J
    With Target.Validation
        .Delete
        .Add xlValidateList, Formula1:=Tem
    End With
End If
End If
End If
End Sub

cảm ơn bạn:-=
mình làm theo như bạn thì ra được kết quả nhưng mà file mình đưa lên làm ví dụ để học hỏi cách làm thôi.
thực tế thì nó khác: vị trí vùng dữ liệu khác, số lượng các thành phần cũng khác... mà mình nhìn vào cái code kia thì chả hiểu nó hoạt động như thế nào cả.!$@!!
 
cảm ơn bạn. kết quả tốt hơn cả những gì mình mong đợi--=0
nhưng mình nhìn vào đó mà không biết cách làm bạn à
bạn tạo data validation như thế nào ở vùng A3:B36 đó? bạn hướng dẫn mình cụ thể hơn được không?
Bạn nhấn Ctrl+F3, chọn New ở mục Name bạn đặt tên là Thucan, ở mục Refers to bạn gõ như sau:
Mã:
=OFFSET(Sheet13!$H$2,,,,MATCH("*",Sheet13!$H$2:$ZZ$2,-1))
Nhấp OK, sau đó đóng cửa sổ Name Maneger lại. Tiếp theo bạn quét chọn vùng từ A3:A36 và thực hiện theo hình.
Hinh1.jpg
Tiếp theo bạn chọn ô B3 và nhấn Ctrl+F3 chọn New, ở mục Name bạn đặt tên là Ten, ở mục Refers to bạn gõ như sau:
Mã:
=OFFSET(Sheet13!$H$2,1,MATCH(Sheet13!A3,Thucan,0)-1,MATCH("*",OFFSET(Sheet13!H$3,,MATCH(Sheet13!A3,Thucan,0)-1,1000,),-1))
Nhấp OK, sau đó đóng cửa sổ Name Maneger lại. Tiếp theo bạn quét chọn vùng từ B3:B36 và thực hiện theo hình.
Hinh2.jpg
 
Bạn nhấn Ctrl+F3, chọn New ở mục Name bạn đặt tên là Thucan, ở mục Refers to bạn gõ như sau:
Mã:
=OFFSET(Sheet13!$H$2,,,,MATCH("*",Sheet13!$H$2:$ZZ$2,-1))
Nhấp OK, sau đó đóng cửa sổ Name Maneger lại. Tiếp theo bạn quét chọn vùng từ A3:A36 và thực hiện theo hình.
View attachment 163224
Tiếp theo bạn chọn ô B3 và nhấn Ctrl+F3 chọn New, ở mục Name bạn đặt tên là Ten, ở mục Refers to bạn gõ như sau:
Mã:
=OFFSET(Sheet13!$H$2,1,MATCH(Sheet13!A3,Thucan,0)-1,MATCH("*",OFFSET(Sheet13!H$3,,MATCH(Sheet13!A3,Thucan,0)-1,1000,),-1))
Nhấp OK, sau đó đóng cửa sổ Name Maneger lại. Tiếp theo bạn quét chọn vùng từ B3:B36 và thực hiện theo hình.
View attachment 163225

mình làm được rồi
cảm ơn bạn nhé--=0
 
Nhờ các Anh Chị Diễn đàn viết giúp drop down list VBA file Excel như đính kèm giúp em !
Cám ơn nhiều !
 

File đính kèm

  • DropList VBA.xlsm
    10.5 KB · Đọc: 6
Alt + D +L phím tắt huyền thoại
 
Alt + D +L phím tắt huyền thoại
Alt + D +L có tạo được bảng dữ liệu theo mẫu, có tạo được name với hàm Offset, ... để ra kết quả mong muốn của chủ đề này không vậy bạn? Câu trả lời của bạn bâng quơ quá, không giúp ích được gì cả.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom