<Di chuyển checkbox khi kích thước ô thay đổi bằng VBA (Help me!!!)

Liên hệ QC

huongntt1211

Thành viên mới
Tham gia
18/10/12
Bài viết
10
Được thích
0
Mọi người ơi giúp mình với.

Mình đang làm một file excel gấp. Trong đó có hai sheet là "MAU 1" và "Du lieu". Tại sheet MAU 1, tại cột Mã CV mình chọn mã từ list A1 đến A7 thì tại Cột Nội dung công việc sẽ dò dữ liệu từ sheet Du lieu sang. Do nội dung công việc có nhiều dòng nên mình sẽ điều chỉnh kích thước của ô và mình muốn checkbox cũng thay đổi theo chứ không ở vị trí cũ nữa.
Nhưng mình vào format control ->Properties thì ô Move and size with cells bị mờ và không cho chọn.
Mình có thấy một thớt trên diễn đàn đã thảo luận về vấn đề này với đoạn code VBA của ndu96081631 như sau:

Sub Test()
With ActiveSheet
.Shapes.AddLine(1, 1, 2, 2).Name = "Line 1"
.Shapes.Range(Array("Check Box 4", "Line 1")).Select
Selection.Placement = xlMoveAndSize
.Shapes("Line 1").Delete
End With
End Sub

Nhưng đoạn code này chỉ áp dụng cho một checkbox thôi. Mình muốn áp dụng cho tất cả các checkbox có trong sheet MAU 1 mà mình không biết code VBA nên không biết chỉnh sửa như thế nào.
Các anh chị em trong diễn đàn giúp mình với ạ. Cảm ơn mọi người.
 

File đính kèm

Mọi người ơi giúp mình với.

Mình đang làm một file excel gấp. Trong đó có hai sheet là "MAU 1" và "Du lieu". Tại sheet MAU 1, tại cột Mã CV mình chọn mã từ list A1 đến A7 thì tại Cột Nội dung công việc sẽ dò dữ liệu từ sheet Du lieu sang. Do nội dung công việc có nhiều dòng nên mình sẽ điều chỉnh kích thước của ô và mình muốn checkbox cũng thay đổi theo chứ không ở vị trí cũ nữa.
Nhưng mình vào format control ->Properties thì ô Move and size with cells bị mờ và không cho chọn.
Mình có thấy một thớt trên diễn đàn đã thảo luận về vấn đề này với đoạn code VBA của ndu96081631 như sau:

Sub Test()
With ActiveSheet
.Shapes.AddLine(1, 1, 2, 2).Name = "Line 1"
.Shapes.Range(Array("Check Box 4", "Line 1")).Select
Selection.Placement = xlMoveAndSize
.Shapes("Line 1").Delete
End With
End Sub

Nhưng đoạn code này chỉ áp dụng cho một checkbox thôi. Mình muốn áp dụng cho tất cả các checkbox có trong sheet MAU 1 mà mình không biết code VBA nên không biết chỉnh sửa như thế nào.
Các anh chị em trong diễn đàn giúp mình với ạ. Cảm ơn mọi người.
Không biết ý của bạn có phải là muốn thế này không nửa.
 

File đính kèm

Upvote 0
Đúng cái mình cần rồi bạn. Mình cảm ơn bạn nhiều nhé. :)
 
Upvote 0
Không biết ý của bạn có phải là muốn thế này không nửa.

Bạn ơi cho mình hỏi một tí này nữa. Nếu mình muốn áp dụng đoạn code này cho một sheet excel khác thì mình chỉ cần sửa lại hai chỗ này thôi phải không bạn?

1. Call GianDong(Sheet1.Range("B3:B" & Sheet1.Range("B65000").End(xlUp).Row))

=> chỗ này mình sửa lại chỗ "B3:B" thành một cột khác và ô "B65000" thì mình cũng chỉ cần sửa lại cột B thành cột A, C,D gì đó tương ứng với cột đang chứa "Nội dung" phải không bạn?

2. Set FirstCell = .Cells(1, 1)

=> chỗ này có cần sửa không vậy bạn?

Và nếu mình tách cột "Đã/chưa cung cấp" thành 2 cột đều có checkbox là "Đã cung cấp" và "Chưa cung cấp" thì đoạn code VBA này có áp dụng luôn cho cả 2 cột hay không? hay mình phải sửa lại code áp dụng cho cả 2 cột có checkbox? Và nếu sửa lại thì bạn hướng dẫn mình cách sửa với nhé.

Cảm ơn bạn nhiều.
 
Upvote 0
Bạn ơi cho mình hỏi một tí này nữa. Nếu mình muốn áp dụng đoạn code này cho một sheet excel khác thì mình chỉ cần sửa lại hai chỗ này thôi phải không bạn?

1. Call GianDong(Sheet1.Range("B3:B" & Sheet1.Range("B65000").End(xlUp).Row))

=> chỗ này mình sửa lại chỗ "B3:B" thành một cột khác và ô "B65000" thì mình cũng chỉ cần sửa lại cột B thành cột A, C,D gì đó tương ứng với cột đang chứa "Nội dung" phải không bạn?

2. Set FirstCell = .Cells(1, 1)

=> chỗ này có cần sửa không vậy bạn?

Và nếu mình tách cột "Đã/chưa cung cấp" thành 2 cột đều có checkbox là "Đã cung cấp" và "Chưa cung cấp" thì đoạn code VBA này có áp dụng luôn cho cả 2 cột hay không? hay mình phải sửa lại code áp dụng cho cả 2 cột có checkbox? Và nếu sửa lại thì bạn hướng dẫn mình cách sửa với nhé.

Cảm ơn bạn nhiều.
Tôi nghĩ bạn nên test thử xem thế nào trước khi tôi trả lời cho bạn.
 
Upvote 0
Tôi nghĩ bạn nên test thử xem thế nào trước khi tôi trả lời cho bạn.

Mình đã thử chuyển cột nội dung sang cột C và sửa lại cột B trong đoạn code thành cột C nhưng khi chạy lại thì không ra nhu mong muốn.
Còn đối với checkbox thì mình insert thêm cột nữa bên cạnh cột cũ thì khi nhấn "click me" thì đoạn code vẫn chạy được cho checkbox mới thêm.

Bạn giải thích giúp mình cái trường hợp đổi cột nội dung sang một cột khác với.
 
Upvote 0
Tôi nghĩ bạn nên test thử xem thế nào trước khi tôi trả lời cho bạn.
Bạn ơi, mình đã thử lại đoạn code cho một cột khác mà không gán vào shape/button thì đoạn code chạy ổn. Nhưng khi mình assign đoạn code vba đó vào shape/button thì nó chỉ chạy được đoạn sub "Movecheckboxes" thôi. Mình đã thử nhiều cách nhưng vẫn chưa được.

Bạn hướng dẫn cho mình thao tác gắn module 1 vào shape/button để chạy nguyên đoạn code đó với.

Cảm ơn bạn nhiều.
 
Upvote 0
Bạn ơi, mình đã thử lại đoạn code cho một cột khác mà không gán vào shape/button thì đoạn code chạy ổn. Nhưng khi mình assign đoạn code vba đó vào shape/button thì nó chỉ chạy được đoạn sub "Movecheckboxes" thôi. Mình đã thử nhiều cách nhưng vẫn chưa được.

Bạn hướng dẫn cho mình thao tác gắn module 1 vào shape/button để chạy nguyên đoạn code đó với.

Cảm ơn bạn nhiều.
Bạn Up cái file bạn đã áp dụng code mà chưa được lên đây để mình xem cho.
 
Upvote 0
Bạn Up cái file bạn đã áp dụng code mà chưa được lên đây để mình xem cho.

Mình gửi file mình làm thử. Nếu mình không chọn giá trị tại cột mã mà để trống thì kết quả trả về tại cột "Nội dung" là #N/A. Khi bấm chọn "click" thì ô check box sẽ của ô có nội dung là #N/A sẽ nhảy lên ô phía trên và nằm đè lên ô check box của ô phía trên. Và tại ô checkbox có nội dung là #N/A thì sẽ mất checkbox.
Mình đối lại là kết quả trả về tại ô nội dung khi dùng hàm vlookup là Blank thì khi chọn nút "click" thì ô checkbox vẫn bị nhảy lên như vậy.

Bạn xem lại giúp mình nhé.
Cảm ơn bạn.
 

File đính kèm

Upvote 0
Mình gửi file mình làm thử. Nếu mình không chọn giá trị tại cột mã mà để trống thì kết quả trả về tại cột "Nội dung" là #N/A. Khi bấm chọn "click" thì ô check box sẽ của ô có nội dung là #N/A sẽ nhảy lên ô phía trên và nằm đè lên ô check box của ô phía trên. Và tại ô checkbox có nội dung là #N/A thì sẽ mất checkbox.
Mình đối lại là kết quả trả về tại ô nội dung khi dùng hàm vlookup là Blank thì khi chọn nút "click" thì ô checkbox vẫn bị nhảy lên như vậy.

Bạn xem lại giúp mình nhé.
Cảm ơn bạn.
Thật ra cái bạn nhìn thấy và cái thực tế là nó khác nhau hoàn toàn. Cụ thể bạn xem hình.
Hinh.jpg
Chổ khoanh tròn màu xanh thật ra nó nằm ở dòng trên, mặc dù bằng mắt thường mình nhìn vào thấy cái ô vuông checkbox nó nằm ở dòng 7, để kiểm chứng bạn chọn thử cái checkbox sẽ thấy xung quanh nó có các ô vuông ở các góc và các cạnh nó lấn lên ô phía trên. Vậy mình cứ nhầm tưởng là nó thuộc dòng lỗi 7 nhưng thật ra nó nằm ở dòng 6 mới đúng, nên khi tính toán nó sẽ lấy dòng 6 để tính toán, vậy sau khi chạy code nó sẽ nằm trùng với checkbox ở dòng 6. Còn cái khoanh màu đỏ mới thật sự đúng vì cái khung bao quanh hình vuông checkbox nó nằm dưới dòng 9.
Bạn xem lại file
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom