Sự kiện Keydown của Combobox không thực hiện

Liên hệ QC

NguyenthiH

Thành viên mới đăng ký
Tham gia
11/12/16
Bài viết
940
Được thích
172
Giới tính
Nữ
Chào các anh chị!
Em có một form nhập liệu, trong form có hai Combobox (CbCus và CbLab). Nhấn tab thì CbCus xổ ra (Dropdown) chọn xong khách hang ở CbCus nhân Tab thì CbLab lại không Xổ ra (Dropdown), Code trong form
Mã:
Private Sub UserForm_Initialize()
With CbCus
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[A65536].End(xlUp), Sheet1.[A3]).Value
End With
With CbLab
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[B65536].End(xlUp), Sheet1.[B3]).Value
End With

End Sub


Private Sub CbCus_Enter()
    CbCus.DropDown
End Sub

Private Sub CbLab_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 If KeyCode = 13 Then CbLab.DropDown
End Sub
Mong các anh chị xem giúp.
 

File đính kèm

  • HoiGPE.xlsb
    16.7 KB · Đọc: 9
Giúp kiểu gì đây, tớ thấy bạn ngồi viết dài ngoàng để mô tả một cái chức năng nào đó, mà chả thấy bạn nói xem mọi người phải giúp cái gì, hay lỗi của bạn là gì.
 
Upvote 0
Tức là khi chọn xong khách hang ở Combobox Khách hang (Ví dụ chọn "Bonmarche") xong nhân Tab chuyển xuống Combobox Label (CbLab) thì CbLab không xổ ra (Dropdown). Mong anh và mọi người giúp em với.
 
Upvote 0
Tức là khi chọn xong khách hang ở Combobox Khách hang (Ví dụ chọn "Bonmarche") xong nhân Tab chuyển xuống Combobox Label (CbLab) thì CbLab không xổ ra (Dropdown). Mong anh và mọi người giúp em với.
Trong userform của bạn có sự kiện _Enter, bạn thay nó bằng Cblab như thế này:
Mã:
Private Sub Cblab_Enter()
    CbLab.DropDown
End Sub
 
Upvote 0
Vẫn không được bạn ơi (bạn selves037). Mính xin nói rỏ cách mình nhập như sau:
Nhấn "Hiện Form"->hiện form->gỏ 6541 vào TbDoc->nhân Tab->gỏ t1234 vào TbSty->nhân Tab->lúc này Combobox xổ ra(Dropdown)->dung phím xuống chọn "Bonmarche" ->nhân Tab->lúc này con trỏ chuột ở tại conbobox label (CbLab), nhưng không xổ ra (không Dropdown), mình muốn là khi nhấn Tab lúc này thì combobox lab(CbLab) xổ ra (Dropdown)
Mong bạn và các anh chị giúp với.
 
Upvote 0
Vẫn không được bạn ơi (bạn selves037). Mính xin nói rỏ cách mình nhập như sau:
Nhấn "Hiện Form"->hiện form->gỏ 6541 vào TbDoc->nhân Tab->gỏ t1234 vào TbSty->nhân Tab->lúc này Combobox xổ ra(Dropdown)->dung phím xuống chọn "Bonmarche" ->nhân Tab->lúc này con trỏ chuột ở tại conbobox label (CbLab), nhưng không xổ ra (không Dropdown), mình muốn là khi nhấn Tab lúc này thì combobox lab(CbLab) xổ ra (Dropdown)
Mong bạn và các anh chị giúp với.
Sao mình làm được nhỉ
 

File đính kèm

  • HoiGPE.xlsb
    19.3 KB · Đọc: 9
Upvote 0
File của bạn seves03 thì combobox Customer khi nhấn Tab không xổ ra (Dropdown) vì trong code không có
Mã:
Private Sub UserForm_Initialize()
With CbCus
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[A65536].End(xlUp), Sheet1.[A3]).Value
End With
With CbLab
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[B65536].End(xlUp), Sheet1.[B3]).Value
End With

End Sub


Private Sub Cblab_Enter()
    CbLab.DropDown
End Sub

Private Sub CbLab_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then CbLab.DropDown
End Sub
nên combobox Label(CbLab) xổ ra là đúng rồi.
Bài đã được tự động gộp:

Bạn cứ thử như mình mô tả bài #5 với file bài #1 đính kèm nhe. thì thấy combobox CbLab không xổ ra khi nhấn Tab
Bài đã được tự động gộp:

Code trong File của bạn (#6) đây:
Mã:
Private Sub CbCus_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

End Sub

Private Sub UserForm_Initialize()
With CbCus
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[A65536].End(xlUp), Sheet1.[A3]).Value
End With
With CbLab
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[B65536].End(xlUp), Sheet1.[B3]).Value
End With

End Sub


Private Sub Cblab_Enter()
    CbLab.DropDown
End Sub

Private Sub CbLab_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 If KeyCode = 13 Then CbLab.DropDown
End Sub
Code trong File bài #1 của mính:
Mã:
Private Sub UserForm_Initialize()
With CbCus
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[A65536].End(xlUp), Sheet1.[A3]).Value
End With
With CbLab
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[B65536].End(xlUp), Sheet1.[B3]).Value
End With

End Sub


Private Sub CbCus_Enter()
    CbCus.DropDown
End Sub

Private Sub CbLab_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 If KeyCode = 13 Then CbLab.DropDown
End Sub
Bởi vậy khi nhấn Tab ở Combobox Lab (CbLab) thì xổ ra là đúng rồi (vì chỉ có code KeyDown của CbLab.
 
Lần chỉnh sửa cuối:
Upvote 0
Mính xin nói rỏ cách mình nhập như sau:
Nhấn "Hiện Form"->hiện form->gỏ 6541 vào TbDoc->nhân Tab->gỏ t1234 vào TbSty->nhân Tab->lúc này Combobox xổ ra(Dropdown)->dung phím xuống chọn "Bonmarche" ->nhân Tab
.
Thay vì đỏ đỏ hãy đập thật mạnh vào ENTER. Tức: Nhấn "Hiện Form"->hiện form->gỏ 6541 vào TbDoc->nhân Tab->gỏ t1234 vào TbSty->nhân Tab->lúc này Combobox xổ ra(Dropdown)->dung phím xuống chọn "Bonmarche" -> đập mạnh vào ENTER.

Với thao tác như trên thì:
1. Xóa Sub CbLab_KeyDown
2. Thêm
Mã:
Private Sub CbCus_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then CbLab.SetFocus
End Sub

Private Sub Cblab_Enter()
    CbLab.DropDown
End Sub
 
Upvote 0
Thay vì đỏ đỏ hãy đập thật mạnh vào ENTER. Tức: Nhấn "Hiện Form"->hiện form->gỏ 6541 vào TbDoc->nhân Tab->gỏ t1234 vào TbSty->nhân Tab->lúc này Combobox xổ ra(Dropdown)->dung phím xuống chọn "Bonmarche" -> đập mạnh vào ENTER.

Với thao tác như trên thì:
1. Xóa Sub CbLab_KeyDown
2. Thêm
Mã:
Private Sub CbCus_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then CbLab.SetFocus
End Sub

Private Sub Cblab_Enter()
    CbLab.DropDown
End Sub
Chắc là bạn í với tay trái qua enter thì lâu ạ
 
Upvote 0
Em để ý thấy nếu để hai Combobox liền kề nhau,thì khi nhấn Tab chuyển qua Combobox thứ 2 thì không Dropdown, còn nếu cách một TexBox, tức là thứ tự combobox- TextBox-Combobox thì nhấn Tab chuyển đến Combobox2 thì mới có Dropdown
 
Upvote 0
Em để ý thấy nếu để hai Combobox liền kề nhau,thì khi nhấn Tab chuyển qua Combobox thứ 2 thì không Dropdown, còn nếu cách một TexBox, tức là thứ tự combobox- TextBox-Combobox thì nhấn Tab chuyển đến Combobox2 thì mới có Dropdown
Có lẽ là do trên form tại một thời điểm nó chỉ cho một combox hiện danh sách thui, lúc nhấn tab thì combobox kia chưa thu lại danh sách.
 
Upvote 0
Vậy anh cho em đoạn code thu lại danh sách của Combobox với.
 
Upvote 0
Vậy anh cho em đoạn code thu lại danh sách của Combobox với.
Mã:
Dim mIsShow As Boolean

Private Sub UserForm_Initialize()
With CbCus
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[A65536].End(xlUp), Sheet1.[A3]).Value
End With
With CbLab
        .ColumnCount = 1
        .ColumnWidths = "180"
        .List = Sheet1.Range(Sheet1.[B65536].End(xlUp), Sheet1.[B3]).Value
End With

End Sub


Private Sub CbCus_Enter()
    mIsShow = False
End Sub


Private Sub CbCus_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If mIsShow = False Then
        mIsShow = True
        CbCus.DropDown
    End If
End Sub

Private Sub CbCus_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If mIsShow = False Then
        mIsShow = True
        CbCus.DropDown
    End If
End Sub


Private Sub CbLab_Enter()
    mIsShow = False
End Sub
Private Sub CbLab_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If mIsShow = False Then
        mIsShow = True
        CbLab.DropDown
    End If
    
End Sub
Private Sub CbLab_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If mIsShow = False Then
        CbLab.DropDown
        mIsShow = True
    End If
End Sub

Vấn đề của bạn tui đoán là bạn cũng chưa hình dung hết ra đâu, chắc bạn muốn mỗi lần một combobox được chọn thì nó hiện ra danh sách luôn.
 
Upvote 0
Web KT
Back
Top Bottom