Bui xuan huynh
Bui xuan huynh
Thảo luận 6 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 122 lượt xem

Em chào Nhờ hướng dẫn em nội dung list conbobox 2 phụ thuộc list combobox 1 cụ

Em chào Thầy!

Nhờ thầy hướng dẫn em nội dung list conbobox 2 phụ thuộc list combobox 1 cụ thể như sau:

Combobox1 của em lấy giá trị từ sheet1.range("a1:c1")

Combobox2.list:

Nếu combobox1 là a1 thì Combobox2.list = sheet1.range("a2:a10")

Nếu combobox1 là b1 thì Combobox2.list = sheet1.range("b2:b5")

Nếu combobox1 là c1 thì Combobox2.list = sheet1.range("c2:a15")

Nhờ Thầy giúp đỡ ạ

Trân trọng cảm ơn Thầy ạ!


Thảo luận 6 câu trả lời
Lượt xem 122 lượt xem
Vỗ tay vỗ tay
Bui xuan huynh 10:05 - May 03, 2022

Bạn tạo sự kiện Combobox1_Change nhé, trong đó:

IF Combobox1.Value = "a1" Then
Combobox2.list = sheet1.range("a2:a10")
ElseIF Combobox1.Value = "b1" Then
Combobox2.list = sheet1.range("b2:b5")
Else
Combobox2.list = sheet1.range("c2:a15")
End if
Vỗ tay vỗ tay
Bui xuan huynh 10:05 - May 03, 2022

Dạ, em có tùy biến code của thầy để phù hợp với file cụ thể của em:

Private Sub ComboBox1_Change()

  If ComboBox1.Value = "J30CABR-B" Then

   ComboBox8.List = Sheet6.Range("co2:co23")

ElseIf ComboBox1.Value = "J30CTRR-B" Then

   ComboBox8.List = Sheet6.Range("cp2:cp13")

Else

   ComboBox8.List = Sheet6.Range("cq2:cq12")

End If

End Sub

Nhưng Sub báo lỗi thầy ạ

Thầy xem lại giúp em nhé!

https://docs.google.com/spreadsheets/...

Vỗ tay vỗ tay
Bui xuan huynh 11:05 - May 03, 2022

Mình chưa xem được do link bị hạn chế quyền truy cập.

Lỗi khi trong vùng range tạo list chỉ có 1 nội dung (hoặc không có nội dung gì).

Cần có ít nhất 2 nội dung trong vùng danh sách tạo List nhé.

Vỗ tay vỗ tay
Bui xuan huynh 11:05 - May 03, 2022

Xin lỗi thầy

em gửi lại link ạ

https://docs.google.com/spreadsheets/...

Vỗ tay vỗ tay
Bui xuan huynh 11:05 - May 03, 2022
Private Sub ComboBox1_Change()
  If ComboBox1.Value = "J30CABR-B" Then
    ComboBox8.List = Sheet6.Range("co2:co23").Value
ElseIf ComboBox1.Value = "J30CTRR-B" Then
    ComboBox8.List = Sheet6.Range("cp2:cp13").Value
Else
   ComboBox8.List = Sheet6.Range("cq2:cq12").Value
End If
End Sub

Code như trên bạn nhé. Có thêm .Value

Mình góp ý thêm 1 chút cho userform của bạn:

1. chỉnh font chữ cho cả textbox, combobox để đồng bộ font chữ để dễ theo dõi.

2. font size cho các label có thể nhỏ hơn 1 chút để vừa bằng với textbox, combobox (hoặc cho textbox, combobox lớn hơn) => tính thẩm mỹ sẽ cao hơn.

3. Textbox nhập ngày bạn nên đặt định dạng (trong sự kiện AfterUpdate) để giúp việc nhập và ghi nhận ngày chính xác hơn.

4. Nên đặt tên cho các textbox, combobox để dễ theo dõi, đọc code, sửa code.

5. Khi lưu những giá trị dạng ngày thì lưu dạng:

Sheet2.Range("p" & Lr + 1).Value = DateValue(TextBox1)

sẽ chính xác hơn.

6. Bạn thiếu các cấu trúc IF kiểm tra trường hợp nhập thiếu tại những textbox, combobox đánh dấu * (dù có cảnh báo nhưng vẫn cần kiểm soát phòng trường hợp người dùng làm không đúng như quy định)

7. Khi lưu nội dung từ userform vào Sheet xong, bạn chỉ cần tạo 2 lệnh như sau:

Unload Me
Tên_userform.Show

Việc này sẽ giúp load lại userform và tự động xóa sạch các vị trí nhập để nhập mới.

Không nên đặt từng textbox, combobox = "" vừa mất thời gian, vừa dễ bị sai.

Vỗ tay vỗ tay
Bui xuan huynh 12:05 - May 03, 2022

Vâng, em cảm ơn thầy nhiều ạ

Chúc thầy sức khỏe, công tác tốt ạ!

Trân trọng!

Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông