Combobox (ActiveX) tại sheet có thể Enter được không? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,662
Được thích
16,725
Giới tính
Nam
Tôi đặt một Combobox/ Textbox (ActiveX Controls) tại ô A1, sau khi nhập xong, không thể Enter cho nó xuống dòng được.

Xin vui lòng cho hỏi có Code nào để khi nhập xong, nhấp Enter nó xuống hàng kế tiếp được? Ví dụ trong trường hợp này là nếu Enter nó xuống dòng tại ô A2.

Cám ơn rất nhiều!
 
Tôi đặt một Combobox/ Textbox (ActiveX Controls) tại ô A1, sau khi nhập xong, không thể Enter cho nó xuống dòng được.

Xin vui lòng cho hỏi có Code nào để khi nhập xong, nhấp Enter nó xuống hàng kế tiếp được? Ví dụ trong trường hợp này là nếu Enter nó xuống dòng tại ô A2.

Cám ơn rất nhiều!
Sao Anh không dùng Activecell.offset(1).select nhỉ! Không biết có đúng ý Anh không.
 
Upvote 0
Sao Anh không dùng Activecell.offset(1).select nhỉ! Không biết có đúng ý Anh không.

Không phải thế đâu MinhCong ui, bạn đang nhập trong Combobox chứ không phải là trong cell, nếu ở UserForm thì enter là nó qua control khác đúng không? Nhưng controls đang đặt trong sheet, mình không thể enter được, phải dùng chuột để dời con trỏ ra chổ khác, ý mình là không muốn dùng chuột đó mà!
 
Upvote 0
Bạn dùng sự kiện

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
if KeyCode=13 then
Keycode=0
Activecell.offset(1).ComboBox1
ComboBox1.Visiable=false
Activecell.offset(1).Select
end if
end sub


Đại khái là như vậy

P/s: Nếu đối tượng thường trú trên Sheet thì cũng có thể dùng thuộc tính Visiable hay phương thức Hide
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn dùng sự kiện

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
if KeyCode=13 then
Keycode=0
Activecell.offset(1).ComboBox1
ComboBox1.Visiable=false
Activecell.offset(1).Select
end if
end sub


Đại khái là như vậy

P/s: Nếu đối tượng thường trú trên Sheet thì cũng có thể dùng thuộc tính Visiable hay phương thức Hide

Cám ơn Anh SEALAND rất nhiều!

Cho em hỏi tiếp, khi chọn giá trị rồi Enter thì tốt rồi, nếu nó bị Visible=False thì làm sao hiện lại nó khi đặt con trỏ tại Cell A1 (cell đặt cái combobox đó)?
 
Lần chỉnh sửa cuối:
Upvote 0
Xin lỗi không thấy bài mới,
Bạn cứ tam khảo 2 đoạn code hiện khi con trỏ vào cột D và ẩn khi sang cột khác
Mã:
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
  KeyCode = 0
   ComboBox1.Visible = False
     ActiveCell = ComboBox1
    ActiveCell.Offset(, 1).Select
    ElseIf KeyCode = 27 Then
  KeyCode = 0
   ComboBox1.Visible = False
    ActiveCell.Offset(, 1).Select
  End If
End Sub
'==================================================
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ComboBox1
If Target.Column = 4 Then
    .Visible = True
      .Top = Target.Top
        .Left = Target.Left
        .Activate
        Application.SendKeys "%{DOWN}"
       Else
     .Visible = False
 End If
 End With
End Sub
Chọn nhấn Enter, không chọn nhấn Esc
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With ComboBox1
    If Target.Column = 1 Then
      .Visible = True
      .Top = Target.Top
      .Left = Target.Left
    Else
      .Visible = False
    End If
  End With
End Sub


Anh Seland ơi, theo như code trên, hình như chưa đúng ý lắm, bởi ở đây là chọn Target ở cột, và cứ ở cột thì cell nào ở cột đó cũng bị show combobox, tác giả lại muốn đặt 1 cái tại 1 điểm cố định thôi, ví dụ tra cứu tên để truy xuất thông tin trong mẫu biểu nào đó.
 
Upvote 0
Mình nghĩ là các bạn vận dụng được nên tuỳ tiện 1 chút.Giả sử bạn muốn ở ô D4 chẳng hạn ta sửa như sau
Thay đoạn: Target.Column = 1 bằng : Target.Address="$D$4"
 
Upvote 0
Web KT

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

Back
Top Bottom