Xin hỏi cách tạo Combox động

Liên hệ QC

Phanhanhdai

Thành viên tiêu biểu
Tham gia
16/3/08
Bài viết
733
Được thích
1,876
Nghề nghiệp
Thiết kế công trình
Em đã được nghe đến cách dùng Combox động. Hiện nay em chỉ biết các tạo Combox chứ chưa biết dùng VBA để tạo thành combox động. Ví dụ em tạo Combox ở ô B1, bây giờ làm cách nào để Combox có thể di chuyển xuống các ô B2, B3...trong cột B. Mong các bác chỉ giúp cách.
 
Em đã được nghe đến cách dùng Combox động. Hiện nay em chỉ biết các tạo Combox chứ chưa biết dùng VBA để tạo thành combox động. Ví dụ em tạo Combox ở ô B1, bây giờ làm cách nào để Combox có thể di chuyển xuống các ô B2, B3...trong cột B. Mong các bác chỉ giúp cách.
Bạn copy đoạn code này vào sheet chứa combobox nhé! Xem thêm file đính kèm sẽ hiểu cách mà cobobox nó "động" như thế nào nhé! Bạn sẽ thấy bạn dư khả năng làm việc này mà!
PHP:
Private Sub ComboBox1_Change()
ActiveCell.Value = Me.ComboBox1.Value
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [A2:A20]) Is Nothing Then
  With Me.ComboBox1
    .Left = Target.Left
    .Top = Target.Top
    .Width = Target.Width
    .Height = Target.Height
  End With
End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Có thể sửa code để khi click vào 1 ô trong vùng có combobox nó sẽ hiện ra danh sách các loại tài khoản luôn mà ko cần phải click vào menu không?
Cho em hỏi combobox lấy dữ liệu từ 2 cột ở sh sys nhưng trong code em không thấy đề cập đến name DMTK? Giải thích dùm em xí nha.
 
Lần chỉnh sửa cuối:
Upvote 0
Có thể sửa code để khi click vào 1 ô trong vùng có combobox nó sẽ hiện ra danh sách các loại tài khoản luôn mà ko cần phải click vào menu không?
Bạn chỉ thêm một chút xíu nữa thôi.
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [A2:A20]) Is Nothing Then
  With Me.ComboBox1
    .Left = Target.Left
    .Top = Target.Top
    .Width = Target.Width
    .Height = Target.Height
    .DropDown    ''<==== Thêm dòng này vào!
  End With
End If
End Sub


Cho em hỏi combobox lấy dữ liệu từ 2 cột ở sh sys nhưng trong code em không thấy đề cập đến name DMTK? Giải thích dùm em xí nha.

Bạn bật chế độ Design Mode trên thanh công cụ Control ToolBox lên rồi click chuột phải vào Combobox chọn Properties, tìm đến thuộc tính ListFillRange sẽ thấy! Cái này không cần dùng Code.
 
Upvote 0
Bạn copy đoạn code này vào sheet chứa combobox nhé! Xem thêm file đính kèm sẽ hiểu cách mà cobobox nó "động" như thế nào nhé! Bạn sẽ thấy bạn dư khả năng làm việc này mà!
PHP:
Private Sub ComboBox1_Change()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [A2:A20]) Is Nothing Then
  With Me.ComboBox1
    .Left = Target.Left
    .Top = Target.Top
    .Width = Target.Width
    .Height = Target.Height
  End With
End If
End Sub

Cho mình hỏi làm như cái File của bác Ca_dafi đã up lên. Làm cách nào để dùng cell làm cái ComboBox
 
Upvote 0
Anh Kiệt ơi! Cái Code anh làm có nhiều ưu điểm, nhưng khi em chọn xong combox ở dòng nào em muốn dấu ẩn đi, hoặc khóa dòng đó lại thì không thực hiện được, anh có thể khắc phục trường hợp này không?
 
Upvote 0
Cho mình hỏi làm như cái File của bác Ca_dafi đã up lên. Làm cách nào để dùng cell làm cái ComboBox

Trong file của mình, Không phải là dùng cell để làm combobox, mà là Fix vị trí của combobox bằng với vị trí của cell được chọn (ActiveCell)

...nhưng khi em chọn xong combox ở dòng nào em muốn dấu ẩn đi, hoặc khóa dòng đó lại thì không thực hiện được, anh có thể khắc phục trường hợp này không?
Bạn xử lý unLock cell trước khi chọn combobox xổ xuống, sau đó bạn xử lý khóa dòng lại sau sự kiện combobox change.
 
Lần chỉnh sửa cuối:
Upvote 0
Kiệt ơi, đoạn code này không ổn:
PHP:
Private Sub ComboBox1_Change()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
- Khi active cell nằm ngoài vùng A2:A20 thí dụ B5, mà quay lại sửa combobox ở A10 chẳng hạn (do muốn sửa lại) thì B5 đổi mà A10 không đổi.
- nhập liệu ngoài vùng không được, khi enter nó biến thành giá trị combobox
- Khi copy - Paste ngoài vùng cũng bị như vậy

Kiệt coi file ở bài này chỉ khác có 1 tí xiu mà khắc phục lỗi đó.

To Võ Thiếu Gia: Combobox vẫn là combobox, không phải lấy cell làm. Chẳng qua dùng code để di chuyển combobox về cell chọn.
To DauThivan: Muốn dấu dòng hay khoá dòng thì thêm dòng lệnh liên quan vào.
To Phanhanhdai: Bạn vẫn chưa xem bài này bài này, và mở thêm topic thứ 3 về đề tài này?
 
Upvote 0
Web KT

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

Back
Top Bottom