Tự động chèn object?

Liên hệ QC
Đọc đoạn code của anh quanghai1969 thì em hiểu đc thế này thôi ạ:
PHP:
If Not Intersect(Target, [A1:J100]) Is Nothing Then
Đoạn này là vùng áp dụng.
PHP:
      m = Choose(.Value, vbGreen, vbCyan, vbBlue, vbYellow, vbRed)
Đoạn này là tô màu.
PHP:
   With ActiveSheet.Shapes.AddShape(n, L, T, W, H)
Đoạn này là các hình tương ứng.
 
Code lại theo yêu cầu của khán giả. Tại sheet2 từ vùng A1 đến J100, nhập thử các số từ 1 đến 5
 

File đính kèm

  • AutoShapes2.rar
    12.9 KB · Đọc: 29
Code lại theo yêu cầu của khán giả. Tại sheet2 từ vùng A1 đến J100, nhập thử các số từ 1 đến 5
Quá ngon ạ. --=0
Nhưng em thấy code trước của anh khi thay đổi chiều rộng hoặc chiều cao của cell thì shape nó tự thay đổi theo. Nhưng code lần này thì ko đc như thế ạ. :-=
Có cách nào chỉnh thêm cái đó thì là hoàn hảo luôn ạ. --=0
 
Quá ngon ạ. --=0
Nhưng em thấy code trước của anh khi thay đổi chiều rộng hoặc chiều cao của cell thì shape nó tự thay đổi theo. Nhưng code lần này thì ko đc như thế ạ. :-=
Có cách nào chỉnh thêm cái đó thì là hoàn hảo luôn ạ. --=0
Trong code có mấy chỗ +10 hay là -5 gì đó, xoá hết là được
 
Bỏ Application.CutCopyMode = False đi vì "không phải lúc này.", không có "đường đứt đoạn" nào cả.
Câu này em quên xoá, trước khi thêm cái vụ thoat:

Nếu bạn dùng
Mã:
ActiveSheet.Paste [COLOR=#ff0000]Target[/COLOR]

thì bỏ được
Mã:
.Top = Target.Top
.Left = Target.Left
Cái này hoàn toàn mới với em, đây là lần đầu tiên em thấy và học được.
Bạn hãy thêm Name cho shape để xóa cũ trước khi tạo mới, vd. là địa chỉ của Target. Vì nếu người ta gõ lại vài lần thì sẽ có shape "rác" Gợi ý ... À mà chưa gợi ý vội.
Em có nghĩ đến chuyện thêm name rồi, nhưng lấn cấn chưa có hướng giải quyết khi muốn thay đổi shape. Theo anh thì làm cách nào thuận tiện?
 
Câu này em quên xoá, trước khi thêm cái vụ thoat:


Cái này hoàn toàn mới với em, đây là lần đầu tiên em thấy và học được.

Em có nghĩ đến chuyện thêm name rồi, nhưng lấn cấn chưa có hướng giải quyết khi muốn thay đổi shape. Theo anh thì làm cách nào thuận tiện?

Mã:
   ActiveSheet.Paste Target
   With Selection
      .Height = Target.Height
      .Width = Target.Width
      .ShapeRange.Item(1).Name = Target.Address
   End With
 
Một giải pháp khác cho bạn đó là sử dụng Font như tôi đã nói trong bài trước.
Bạn Copy Font đính kèm vào thư mục Font của Window, thoát hoàn toàn Excel rồi mở lại.

Gõ 1, 2, 3, 4, 5 trong 1 vùng và chọn font DHN Shape.
Bạn sẽ thấy các icon hiện ra như font bình thường, cách định dạng như font và dung lượng file thì rất nhỏ.
 

File đính kèm

  • DHN Shape.rar
    2.6 KB · Đọc: 19
Mã:
   ActiveSheet.Paste Target
   With Selection
      .Height = Target.Height
      .Width = Target.Width
      .ShapeRange.Item(1).Name = Target.Address
   End With
Oh em hiểu rồi. Không nghĩ ra được cái Target.Address. Vậy không thể xóa nhầm ô nào cả.
 
Một giải pháp khác cho bạn đó là sử dụng Font như tôi đã nói trong bài trước.
Bạn Copy Font đính kèm vào thư mục Font của Window, thoát hoàn toàn Excel rồi mở lại.

Gõ 1, 2, 3, 4, 5 trong 1 vùng và chọn font DHN Shape.
Bạn sẽ thấy các icon hiện ra như font bình thường, cách định dạng như font và dung lượng file thì rất nhỏ.
Cách này của bác cũng hay và gọn nhẹ nữa. Nhưng em đang cần in ra có màu ạ. --=0
 
Mã:
   ActiveSheet.Paste Target
   With Selection
      .Height = Target.Height
      .Width = Target.Width
      .ShapeRange.Item(1).Name = Target.Address
   End With
Nếu thay đoạn trên cho đoạn này của anh quanghai1969:
Mã:
ActiveSheet.Paste
   With Selection
      .Top = Target.Top + 5
      .Left = Target.Left + 5
      .Height = Target.Height - 10
      .Width = Target.Width - 10
   End With
Thì khi thay đổi chiều cao, shape cũng thay đổi theo. Nhưng thay đổi chiều rộng thì shape ko thay đổi, vẫn giữ nguyên độ rộng ban đầu mặc định của cell ạ. **~**
 
Cách này của bác cũng hay và gọn nhẹ nữa. Nhưng em đang cần in ra có màu ạ. --=0
Bạn đã đọc kỹ tôi đã viết rằng đó là Font chưa?
nó là Font thì bạn định dạng như Font, tô màu, thay đổi kích cỡ hay làm gì cũng được, bạn có thể dùng Condition format để tô màu có điều kiện, Font mà.
 
Bạn đã đọc kỹ tôi đã viết rằng đó là Font chưa?
nó là Font thì bạn định dạng như Font, tô màu, thay đổi kích cỡ hay làm gì cũng được, bạn có thể dùng Condition format để tô màu có điều kiện, Font mà.
À đúng, em vừa đi uống về nên hơi ... --=0
 
Có anh nào có thể làm theo kiểu Data Validation đc ko ạ? Nốt cái đấy là đủ bộ, ai thik cách nào thì làm theo cách đấy ạ. --=0
 
Có anh nào có thể làm theo kiểu Data Validation đc ko ạ? Nốt cái đấy là đủ bộ, ai thik cách nào thì làm theo cách đấy ạ. --=0
Thay vì gõ vào cell không sướng hơn hay sao, tội gì phải bấm cái validation rồi phải chọn.
Viết code thì được hết đó, nhưng có đáng không?
 
Mã:
   ActiveSheet.Paste Target
   With Selection
      .Height = Target.Height
      .Width = Target.Width
      [COLOR=#ff0000].ShapeRange.Item(1)[/COLOR].Name = Target.Address
   End With
Bắt giò anh được chỗ này bị thừa
Mã:
   ActiveSheet.Paste Target
   With Selection
      .Height = Target.Height
      .Width = Target.Width
      .Name = Target.Address
   End With
 
Bắt giò anh được chỗ này bị thừa
Mã:
   ActiveSheet.Paste Target
   With Selection
      .Height = Target.Height
      .Width = Target.Width
      .Name = Target.Address
   End With

Ờ đúng. Nếu tôi thử viết thế thì chắc chắn cũng sẽ thành công. Thế mà lại không thử. Nhiều khi máy móc quá mà không nghĩ tới cái đơn giản nhất.
Cám ơn bạn về bài học này. Ngu ngơ như thế thì tôi cũng phải phạt tôi. Trong vụ này không thể có tình tiết giảm nhẹ gì cả. Tuần này trừ đi mấy cốc. He he.
 
Thay vì gõ vào cell không sướng hơn hay sao, tội gì phải bấm cái validation rồi phải chọn.
Viết code thì được hết đó, nhưng có đáng không?
Ý em là để cho phong phú thêm thôi ạ. --=0
Với cả một số trường hợp nó hơi khù khoằm, bít đâu lại cần đến ạ. --=0
 

File đính kèm

  • AutoShapes2.rar
    13.6 KB · Đọc: 18
Web KT

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

Back
Top Bottom