HOANG 1978
Thành viên mới

- Tham gia
- 29/12/10
- Bài viết
- 8
- Được thích
- 3
Thay đổi vị trí các Autoshape một chút xem sao.Nhờ các A/C trên giải pháp Excel giúp tôi điều chỉnh độ rộng của hình chữ nhật(Autoshape) trên excel khi tôi thay đổi số trên 1 ô thì hình tương ứng cũng thay đổi kích cở theo như file đính kèm.Cảm ơn!
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A2], [A4], [A6])) Is Nothing Then Exit Sub
Shapes("Rectangle " & Target.Row / 2).Width = Target / 280
End Sub
Vậy thì thay số 280 ở trên bởi số khác cho phù hợp. Thực ra thì mình thêm /280 trong code để phù hợp với kích thước Autoshape trong file gốc.Cái này hay quá nhưng số lớn như vậy thì được, còn nhỏ hơn, VD: 5,10,15, thì hết thấy luôn. Chỉnh lại ra sao he anh phuc.
Vậy thì thay số 280 ở trên bởi số khác cho phù hợp. Thực ra thì mình thêm /280 trong code để phù hợp với kích thước Autoshape trong file gốc.
Thì cứ thử sai thôi, thay đổi số này cho đến khi kích thước Autoshape gần bằng trong file gốc của tác giả là được. Cái này chỉ là tương đối thôi mà, chỉ có tác giả câu hỏi mới biết chính xác là phải chia cho mấy để được kích thước đúng.Ah. chỉnh thì được rồi nhưng làm sao biết được lúc đầu Autoshape trong file gốc là 280 vậy he anh phuc
Vậy thì thay số 280 ở trên bởi số khác cho phù hợp. Thực ra thì mình thêm /280 trong code để phù hợp với kích thước Autoshape trong file gốc.
Cũng code trên thôi, và chỉnh sửa lại một chút cho gọn (câu lệnh bẫy lỗi ở đầu Sub). Tất nhiên là phải đổi tên các AutoShape cho đúng quy luật.Thế thì cũng file của tác giả. Mình muốn có 6 hình thì lúc này thay đổi như thế nào nữa vậy các bác
Private Sub Worksheet_Change(ByVal Target As Range)
If InStr("$A$2$A$4$A$6$A$8$A$10$A$12", Target.Address) = 0 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Shapes("Rectangle " & Target.Row / 2).Width = Target.Value / 280
End Sub
Cũng code trên thôi, và chỉnh sửa lại một chút cho gọn (câu lệnh bẫy lỗi ở đầu Sub). Tất nhiên là phải đổi tên các AutoShape cho đúng quy luật.
PHP:Private Sub Worksheet_Change(ByVal Target As Range) If InStr("$A$2$A$4$A$6$A$8$A$10$A$12", Target.Address) = 0 Then Exit Sub If Not IsNumeric(Target.Value) Then Exit Sub Shapes("Rectangle " & Target.Row / 2).Width = Target.Value / 280 End Sub
Má ơi! Gửi bài từ 25/4 mà giờ mới phản hồiThật là tuyệt đó, nhưng có một điều là mình không biết làm thế náo để Excel hiểu được Auto Shape mà mình chèn vào là của ô mà mình muốn thay đổi.
Thật sự là mình rất là vui khi nhận đuợc giúp đở nhiệt tình này.
Cho tôi gửi lời cảm ơn đến anh Phúc và cá Ảnh/ Chị khác đã cho tôi tìm được giải pháp trong công việc.
Chân thành cảm ỏn,
Hoàng