Cách nhập dữ liệu combobox!

Liên hệ QC

son0611excel

Thành viên mới
Tham gia
3/1/20
Bài viết
46
Được thích
7
Giới tính
Nam
Nghề nghiệp
Kỹ Thuật
Em chào mọi người ạ, Em có 1 sheet chứa dữ liệu như hình dưới, 1 userform gồm combobox và textbox. Nhờ mọi người dưỡng dẫn em nhập các hộ gia đình vào combobox, khi chọn hộ thì tiền điện của họ cũng hiện xuống ô textbox bên dưới luôn ạ!
1621613278402.png1621613336095.png
 

File đính kèm

  • combobox.xlsm
    18.6 KB · Đọc: 9
Em chào mọi người ạ, Em có 1 sheet chứa dữ liệu như hình dưới, 1 userform gồm combobox và textbox. Nhờ mọi người dưỡng dẫn em nhập các hộ gia đình vào combobox, khi chọn hộ thì tiền điện của họ cũng hiện xuống ô textbox bên dưới luôn ạ!
View attachment 259176View attachment 259177
Cho code này vào UserForm.
Mã:
Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Me.ComboBox1.Column(1)
End Sub

Private Sub UserForm_Initialize()
    Me.ComboBox1.ColumnCount = 2
    Me.ComboBox1.ColumnWidths = "120pt; 50pt"
    Me.ComboBox1.RowSource = Sheet1.Range("C4:D" & Sheet1.Range("D1000000").End(xlUp).Row).Address
End Sub
 
Upvote 0
Cho code này vào UserForm.
Mã:
Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Me.ComboBox1.Column(1)
End Sub

Private Sub UserForm_Initialize()
    Me.ComboBox1.ColumnCount = 2
    Me.ComboBox1.ColumnWidths = "120pt; 50pt"
    Me.ComboBox1.RowSource = Sheet1.Range("C4:D" & Sheet1.Range("D1000000").End(xlUp).Row).Address
End Sub
Dạ anh ơi, em chỉ muốn cho nó hiện combobox 1 chỉ hiện chủ hộ thôi, không cần colum ạ, khi nhấp vào chủ hộ thì phần tiền điện ở bên dưới cũng hiện theo
Code của anh nó hiện cả 2 colum trong combobox rùi á.
 
Upvote 0
Dạ anh ơi, em chỉ muốn cho nó hiện combobox 1 chỉ hiện chủ hộ thôi, không cần colum ạ, khi nhấp vào chủ hộ thì phần tiền điện ở bên dưới cũng hiện theo
Code của anh nó hiện cả 2 colum trong combobox rùi á.
Chổ 50pt sửa là 0pt
 
Upvote 0
anh có thể giải thích tại sao nó không load khi khi form nó nằm ở sheet2 vậy
Theo như mình hiểu thì code này nằm trong Private sub, nếu muốn tại một sheet mà form vẫn hiện list tại sheet khác thì bạn làm thêm 1 bước tạo 1 module nạp mảng cho list và khai báo public để khi dùng ở đâu list cũng hiện ra.
Kiểu giống code ví dụ như vậy nè
Mã:
Option Explicit
Public priArray
Sub OriginPriArray()
    priArray = Sheets("DMVT").Range("E8:H" & Sheets("DMVT").Range("E" & Rows.Count).End(xlUp).Row).Value2
End Sub
 
Upvote 0
Tôi thì hay dùng Name Range hoặc Table cho các dữ liệu loại Danh mục.
Mã:
Me.ComboBox1.RowSource = Sheets("abc").ListObjects("tblHoGiaDinh")
 
Upvote 0
anh có thể giải thích tại sao nó không load khi khi form nó nằm ở sheet2 vậy
Vì thuộc tính Address trong code chỉ trả lại địa chỉ dạng "$C$4:$D$100", khi đang đứng ở sheet 2 thì combobox ngỡ đó là vùng "$C$4:$D$100" của sheet2, nó đã nằm mơ không đúng chỗ ( vì trong chuỗi địa chỉ không hề có thành phần tên sheet, nên nó cứ đè thằng sheet hiện hành mà lấy dữ liệu). thành ra nó đã lấy data từ sheet2 thay vì sheet1, dùng code dưới để lấy chính xác định chỉ, chắc sẽ ngọt ngào hơn.

Me.ComboBox1.RowSource = Sheet1.Range("C4:D" & Sheet1.Range("D1000000").End(xlUp).Row).Address(True, True, xlA1, True)
 
Upvote 0
Vì thuộc tính Address trong code chỉ trả lại địa chỉ dạng "$C$4:$D$100", khi đang đứng ở sheet 2 thì combobox ngỡ đó là vùng "$C$4:$D$100" của sheet2, nó đã nằm mơ không đúng chỗ ( vì trong chuỗi địa chỉ không hề có thành phần tên sheet, nên nó cứ đè thằng sheet hiện hành mà lấy dữ liệu). thành ra nó đã lấy data từ sheet2 thay vì sheet1, dùng code dưới để lấy chính xác định chỉ, chắc sẽ ngọt ngào hơn.

Me.ComboBox1.RowSource = Sheet1.Range("C4:D" & Sheet1.Range("D1000000").End(xlUp).Row).Address(True, True, xlA1, True)
Để chiều về em thử ạ, tại file em để máy laptop nhà !
Bài đã được tự động gộp:

Chơi vầy.
Mã:
Me.ComboBox1.RowSource = "abc!C4:D" & Sheet1.Range("D1000000").End(xlUp).Row
Cảm ơn anh nhiều!
 
Upvote 0
Mình tham gia thế này vì trên fom không có nút nhập
Mã:
Private Sub ComboBox1_Change()
Me.TextBox1 = Sheet1.Cells(Me.ComboBox1.ListIndex + 4, 4)
End Sub
'----------------------
Private Sub TextBox1_Change()
NhapDL
End Sub
'-----------------------
Private Sub UserForm_Initialize()
Dim Tm
Tm = Sheet1.[C4:C8]
Me.ComboBox1.List = Tm
End Sub
'------------------------
Sub NhapDL()
Sheet1.Cells(Me.ComboBox1.ListIndex + 4, 4) = Me.TextBox1
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom