Ẩn ComboBox (1 người xem)

Liên hệ QC

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

Duong gia

Thành viên thường trực
Tham gia
15/1/07
Bài viết
352
Được thích
118
Chào các bác nhờ các chỉ giúp cách ẩn ComboBox1. Giả sử khi mình di chuyển chuột đến cột C thì ComboBox1 hiện ra, còn ra ngoài cột C thì ComboBox1 ẩn. Thanks
 
Lần chỉnh sửa cuối:
Chào các bác nhờ các chỉ giúp cách ẩn ComboBox1. Giả sử khi mình di chuyển chuột đến cột C thì ComboBox1 hiện ra, còn ra ngoài cột C thì ComboBox1 ẩn. Thanks
Bạn xem code ve Combobox động này nha
PHP:
Sub Worksheet_Selectionchange(ByVal target As Range)
With ComboBox1
    If target.Column = 3 Then
        .Visible = True
        .Top = target.Top
        .Height = target.Height
        .Left = target.Left
        .Width = target.Width
        .LinkedCell = target
    Else
        .Visible = False
    End If
End With
End Sub

Private Sub ComboBox1_Change()
ActiveCell.Value = ComboBox1.Value
End Sub
 

File đính kèm

Upvote 0
Mình cũng đang sử dụng combo giống như vậy, nhược điểm là khi copy chọn khối thì lệnh copy sẽ mất. Nhân tiện đây cho mình hỏi có cách nào khắc phục được nhược điểm đó không ?
Mình cám ơn nhiều
 
Upvote 0
Bạn xem code ve Combobox động này nha
PHP:
 Sub Worksheet_Selectionchange(ByVal target As Range) With ComboBox1     If target.Column = 3 Then         .Visible = True         .Top = target.Top         .Height = target.Height         .Left = target.Left         .Width = target.Width         .LinkedCell = target     Else         .Visible = False     End If End With End Sub   Private Sub ComboBox1_Change() ActiveCell.Value = ComboBox1.Value End Sub
Cám ơn bạn, rất hay. Nhưng tại sao mất chức năng copy và paste. Bạn có thể thêm một đoạn code nào đó để khôi phục lại chức năng này không. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Mình cũng đang sử dụng combo giống như vậy, nhược điểm là khi copy chọn khối thì lệnh copy sẽ mất. Nhân tiện đây cho mình hỏi có cách nào khắc phục được nhược điểm đó không ?
Mình cám ơn nhiều

Cám ơn bạn, rất hay. Nhưng tại sao mất chức năng copy và paste. Bạn có thể thêm một đoạn code nào đó để khôi phục lại chức năng này không. Thanks
Vụ này đã có hỏi trên diển đàn rồi mà...
Với code trên thì sửa lại thành:
PHP:
Sub Worksheet_Selectionchange(ByVal target As Range)
  With ComboBox1
    If target.Column = 3 Then
      .Visible = True
      .Top = target.Top
      .Height = target.Height
      .Left = target.Left
      .Width = target.Width
      .LinkedCell = target
    ElseIf Application.CutCopyMode = False Then
        .Visible = False
    End If
  End With
End Sub
Tham khảo tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=22666
 
Upvote 0
Vụ này đã có hỏi trên diển đàn rồi mà... Với code trên thì sửa lại thành:
PHP:
 Sub Worksheet_Selectionchange(ByVal target As Range)   With ComboBox1     If target.Column = 3 Then       .Visible = True       .Top = target.Top       .Height = target.Height       .Left = target.Left       .Width = target.Width       .LinkedCell = target     ElseIf Application.CutCopyMode = False Then         .Visible = False     End If   End With End Sub
Tham khảo tại đây: http://www.giaiphapexcel.com/forum/showthread.php?t=22666
cột C mình dùng comboBox để chọn mã khách hàng. Giả sử mình cần chọn và điền mã khách hàng AA cho dòng C10 đến C15, mà khách hàng này nằm ở dòng thứ 2000 của list vậy là mình phải chọn 6 lần mới điền mã khách hàng từ dòng C10 đến C15. Làm vậy thì mất nhiều thời gian quá và mệt quá. Có cách nào sửa đổi đoạn code trên để khi mình chỉ cần chọn được mã khách hàng ở C10 thôi, còn C11 đến C15 thì chỉ cần copy và paste thôi thì nhanh và hay hơn. Nhờ các bạn sửa giúp đoạn code trên. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
cột C mình dùng comboBox để chọn mã khách hàng. Giả sử mình cần chọn và điền mã khách hàng AA cho dòng C10 đến C15, mà khách hàng này nằm ở dòng thứ 2000 của list vậy là mình phải chọn 6 lần mới điền mã khách hàng từ dòng C10 đến C15. Làm vậy thì mất nhiều thời gian quá và mệt quá. Có cách nào sửa đổi đoạn code trên để khi mình chỉ cần chọn được mã khách hàng ở C10 thôi, còn C11 đến C15 thì chỉ cần copy và paste thôi thì nhanh và hay hơn. Nhờ các bạn sửa giúp đoạn code trên. Thanks
Dùng đoạn code trên có thể copy nhưng lại không thể paste nhiều cell được (chọn nhiều cell nó báo lổi)
Vậy ta sửa lại, thay đoạn:
If target.Column = 3 Then
thành:
If target.Column = 3 And target.Count = 1 Then
Bạn thử xem!
Có điều tôi nhận thấy rằng khi ta dùng ComboBox để hổ trợ nhập liệu, chúng ta đâu chỉ điền dử liệu cho 1 cell ---> Thông thường ta sẽ điền cho tất cả các cell có liên quan trên 1 dòng
Không biết dử liệu của bạn thế nào nên chưa thể làm tiếp
 
Upvote 0
Dùng đoạn code trên có thể copy nhưng lại không thể paste nhiều cell được (chọn nhiều cell nó báo lổi) Vậy ta sửa lại, thay đoạn: If target.Column = 3 Then thành: If target.Column = 3 And target.Count = 1 Then Bạn thử xem! Có điều tôi nhận thấy rằng khi ta dùng ComboBox để hổ trợ nhập liệu, chúng ta đâu chỉ điền dử liệu cho 1 cell ---> Thông thường ta sẽ điền cho tất cả các cell có liên quan trên 1 dòng Không biết dử liệu của bạn thế nào nên chưa thể làm tiếp
Đúng vậy, mình dùng ComboBox để hổ trợ nhập liệu, điền dữ liệu cho tất cả các cell có liên quan trên 1 dòng. VD mình cần chọn một khách trong một danh sách dài cả ngàn khách hàng. Dữ liệu cần điền là : Mã KH, Tên KH, Địa chị KH, Tel KH, ... ứng với Cột C, D, E, F, ... và tất nhiên một khách hàng không chỉ mua 1 mặt hàng mà họ mua nhiều mặt hàng. NHư vậy ta cần điền dữ liệu tại dòng C10 đến C16. Mình muốn chọn dữ liệu một lần và sau đó copy C10:F10 xuống những dòng bên dưới thì nhanh hơn. Cám ơn bạn quan tâm, rất mong nhận được sự tro giúp của bạn. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Đúng vậy, mình dùng ComboBox để hổ trợ nhập liệu, điền dữ liệu cho tất cả các cell có liên quan trên 1 dòng. VD mình cần chọn một khách trong một danh sách dài cả ngàn khách hàng. Dữ liệu cần điền là : Mã KH, Tên KH, Địa chị KH, Tel KH, ... ứng với Cột C, D, E, F, ... và tất nhiên một khách hàng không chỉ mua 1 mặt hàng mà họ mua nhiều mặt hàng. NHư vậy ta cần điền dữ liệu tại dòng C10 đến C16. Mình muốn chọn dữ liệu một lần và sau đó copy C10:F10 xuống những dòng bên dưới thì nhanh hơn. Cám ơn bạn quan tâm, rất mong nhận được sự tro giúp của bạn. Thanks

Sao bạn không dùng Validation kết hợp name động

như thế chỉ lọcnnhhưuggnngg mục theo tiêu chí liên quan?
 
Upvote 0
Đúng vậy, mình dùng ComboBox để hổ trợ nhập liệu, điền dữ liệu cho tất cả các cell có liên quan trên 1 dòng. VD mình cần chọn một khách trong một danh sách dài cả ngàn khách hàng. Dữ liệu cần điền là : Mã KH, Tên KH, Địa chị KH, Tel KH, ... ứng với Cột C, D, E, F, ... và tất nhiên một khách hàng không chỉ mua 1 mặt hàng mà họ mua nhiều mặt hàng. NHư vậy ta cần điền dữ liệu tại dòng C10 đến C16. Mình muốn chọn dữ liệu một lần và sau đó copy C10:F10 xuống những dòng bên dưới thì nhanh hơn. Cám ơn bạn quan tâm, rất mong nhận được sự tro giúp của bạn. Thanks
Do không có file nên cũng chẳng biết làm cách nào! Tôi giả lập dử liệu này, bạn tham khảo và chỉnh sửa lại theo ý mình nhé
File này chỉ là gợi ý, chưa hoàn hảo lắm đâu ---> Nếu nhập liệu phức tạp, tôi nghĩ dùng UserFrom sẽ thích hợp hơn
 

File đính kèm

Upvote 0
Do không có file nên cũng chẳng biết làm cách nào! Tôi giả lập dử liệu này, bạn tham khảo và chỉnh sửa lại theo ý mình nhé File này chỉ là gợi ý, chưa hoàn hảo lắm đâu ---> Nếu nhập liệu phức tạp, tôi nghĩ dùng UserFrom sẽ thích hợp hơn
Bác ndu96081631 sửa giúp: sau khi chọn mã xong con trõ sẽ tự động nhảy sang cột B của dòng tương ứng. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Bác ndu96081631 sửa giúp: sau khi chọn mã xong con trõ sẽ tự động nhảy sang cột B của dòng tương ứng. Thanks
Cái này dể mà... đã có từng nói trong các bài nhập liệu ngày tháng bằng Calendar..
Bạn sửa code:
PHP:
Private Sub ComboBox1_Change()
  ActiveCell.Value = ComboBox1.Value
End Sub
thành:
PHP:
Private Sub ComboBox1_Change()
  With ActiveCell
    .Value = ComboBox1.Value
    .Offset(, 1).Select
  End With
End Sub
 
Upvote 0
Bạn xem code ve Combobox động này nha
PHP:
Sub Worksheet_Selectionchange(ByVal target As Range)
With ComboBox1
    If target.Column = 3 Then
        .Visible = True
        .Top = target.Top
        .Height = target.Height
        .Left = target.Left
        .Width = target.Width
        .LinkedCell = target
    Else
        .Visible = False
    End If
End With
End Sub

Private Sub ComboBox1_Change()
ActiveCell.Value = ComboBox1.Value
End Sub
Xin cho hỏi nếu chỉ muốn duy nhất Cột E4 là Combobox thôi thì sửa code thế nào hả Prô ??
 
Upvote 0
Cái này dể mà... đã có từng nói trong các bài nhập liệu ngày tháng bằng Calendar..
Bạn sửa code:
PHP:
Private Sub ComboBox1_Change()
  ActiveCell.Value = ComboBox1.Value
End Sub
thành:
PHP:
Private Sub ComboBox1_Change()
  With ActiveCell
    .Value = ComboBox1.Value
    .Offset(, 1).Select
  End With
End Sub

Trường hợp Bảng tính Excel shared (2 người dùng cùng luc) thì các CBB nó báo lỗi, thì mình sẽ khác phục nó như thế nào vậy thầy
 
Upvote 0

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

Back
Top Bottom