Bạn xem code ve Combobox động này nhaChà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
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. ThanksBạn xem code ve Combobox động này nhaPHP: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
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
Vụ này đã có hỏi trên diển đàn rồi mà...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
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
Ở 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. ThanksVụ 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:Tham khảo tại đây: http://www.giaiphapexcel.com/forum/showthread.php?t=22666PHP: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
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)Ở 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
Đú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. ThanksDù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
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éĐú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
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. ThanksDo 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
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á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
Private Sub ComboBox1_Change()
ActiveCell.Value = ComboBox1.Value
End Sub
Private Sub ComboBox1_Change()
With ActiveCell
.Value = ComboBox1.Value
.Offset(, 1).Select
End With
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ô ??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á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:
thành:PHP:Private Sub ComboBox1_Change() ActiveCell.Value = ComboBox1.Value End Sub
PHP:Private Sub ComboBox1_Change() With ActiveCell .Value = ComboBox1.Value .Offset(, 1).Select End With End Sub