VBA tra cứu hình theo điều kiện

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

son0611excel

Thành viên mới
Tham gia
3/1/20
Bài viết
46
Được thích
7
Giới tính
Nam
Nghề nghiệp
Kỹ Thuật
Em chào anh chị ạ, em tìm mãi trên mạng mà không có công thức hay hàm vừa í em, nhờ anh chị giúp em VBA hay macro của file này với ạ:

Em có 2 sheet Thông tin và Kỹ năng, khi nhập số 1 2 3 4 bên sheet thông tin thì nó sẽ trả về hình 1 2 3 4 tương ứng bên sheet kỹ năng, và khi thay đổi số thì nó tự động nhảy hình.

Em cảm ơn anh chị đã giúp đỡ.


1714798288484.png 1714798305157.png
 

File đính kèm

  • Ky nang.xlsx
    15.8 KB · Đọc: 7
Em chào anh chị ạ, em tìm mãi trên mạng mà không có công thức hay hàm vừa í em, nhờ anh chị giúp em VBA hay macro của file này với ạ:

Em có 2 sheet Thông tin và Kỹ năng, khi nhập số 1 2 3 4 bên sheet thông tin thì nó sẽ trả về hình 1 2 3 4 tương ứng bên sheet kỹ năng, và khi thay đổi số thì nó tự động nhảy hình.

Em cảm ơn anh chị đã giúp đỡ.
Trong khi chờ các giải pháp khác hãy thử tham khảo file sau.
 

File đính kèm

  • Ky nang.xlsm
    26.3 KB · Đọc: 16
Upvote 0
Chịu khó dịch dòng đậm đậm thứ 2 trên bảng thông báo xem sao.
 
Lần chỉnh sửa cuối:
Upvote 0

File đính kèm

  • Screenshot (159).png
    Screenshot (159).png
    102.5 KB · Đọc: 22
  • Screenshot (158).png
    Screenshot (158).png
    130.4 KB · Đọc: 22
Upvote 0
Trong khi chờ các giải pháp khác hãy thử tham khảo file sau.
Có cách nào xóa shape cũ trước khi paste shape mới vào không chú. Lỡ tay nhấn 10 lần 1 số trong 1 ô thì lại phát sinh nhiều shape lồng lên nhau quá
Khuyên chủ thớt nên thử nghĩ cách khác chẳng hạn thêm 2 ô 2 cột trong mỗi số để code bôi màu nếu số thay đổi hơn
 
Upvote 0
Có cách nào xóa shape cũ trước khi paste shape mới vào không chú. Lỡ tay nhấn 10 lần 1 số trong 1 ô thì lại phát sinh nhiều shape lồng lên nhau quá
Khuyên chủ thớt nên thử nghĩ cách khác chẳng hạn thêm 2 ô 2 cột trong mỗi số để code bôi màu nếu số thay đổi hơn
Cảm ơn bạn đã phát hiện ra vấn đề còn thiếu của bài này. Đúng là tôi đã sót.
Có lẽ chỉ cần chọn ô Target.offfset(0,1) và delete shape cũ đi trước khi dán shape mới vào là được.
Code đầy đủ của bài này thế này. Rất mong bạn cho ý kiến góp ý:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim t, d&, c&
 Dim shp As Object
Application.ScreenUpdating = False
  If Not Intersect(Target, Range("C3:C100,E3:E100,G3:G100,I3:I100")) Is Nothing Then
    If Target.Count = 1 Then
      If Target.Value <> Empty Then
        t = Target.Value: d = Target.Row: c = Target.Column + 1
            ActiveSheet.Cells(d, c).ClearContents
            Sheets("Ky Nang").Activate
        For Each shp In Worksheets("Ky Nang").Shapes
            If shp.Name Like t Then
                shp.Copy
                Exit For
            End If
        Next
            Sheets("Thông tin").Activate
            ActiveSheet.Cells(d, c).Select
            ActiveSheet.Paste
      End If
    End If
  End If
Application.ScreenUpdating = True
End Sub
Xin đính chính lại
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn đã phát hiện ra vấn đề còn thiếu của bài này. Đúng là tôi đã sót.
Có lẽ chỉ cần chọn ô Target.offfset(0,1) và delete shape cũ đi trước khi dán shape mới vào là được.
Code đầy đủ của bài này thế này. Rất mong bạn cho ý kiến góp ý:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim t, d&, c&
 Dim shp As Object
Application.ScreenUpdating = False
  If Not Intersect(Target, Range("C3:C100,E3:E100,G3:G100,I3:I100")) Is Nothing Then
    If Target.Count = 1 Then
      If Target.Value <> Empty Then
        t = Target.Value: d = Target.Row: c = Target.Column + 1
            ActiveSheet.Cells(d, c).ClearContents
            Sheets("Ky Nang").Activate
        For Each shp In Worksheets("Ky Nang").Shapes
            If shp.Name Like t Then
                shp.Copy
                Exit For
            End If
        Next
            Sheets("Thông tin").Activate
            ActiveSheet.Cells(d, c).Select
            ActiveSheet.Paste
      End If
    End If
  End If
Application.ScreenUpdating = True
End Sub
Xin đính chính lại
Em test thử thấy nó vẫn đè shape mới lên shape cũ nếu mình gõ lại số mới, mà nó không xóa shape cũ đi anh à
 
Upvote 0
Rất mong bạn cho ý kiến góp ý:
Code sau chú nên bẫy lỗi trường hợp target nhập vào không phải 1,2,3,4. Vui vụi nhập khác 4 số ấy là lại có vấn đề + vẫn bị lỗi nhập số không phải 4 số kia thì lại ra hình không chuẩn + bài 8 đang báo
 
Lần chỉnh sửa cuối:
Upvote 0
Em chào anh chị ạ, em tìm mãi trên mạng mà không có công thức hay hàm vừa í em, nhờ anh chị giúp em VBA hay macro của file này với ạ:

Em có 2 sheet Thông tin và Kỹ năng, khi nhập số 1 2 3 4 bên sheet thông tin thì nó sẽ trả về hình 1 2 3 4 tương ứng bên sheet kỹ năng, và khi thay đổi số thì nó tự động nhảy hình.

Em cảm ơn anh chị đã giúp đỡ.


View attachment 300680 View attachment 300681
Bạn dùng file này xem thử nhé.
 

File đính kèm

  • Ky nang.xlsm
    27.1 KB · Đọc: 12
Upvote 0
Tôi có hướng suy nghĩ khác, bạn có thể tham khảo thêm cho vui nhé.
File Rar (Ky nang.rar) đính kèm gồm có :
1. File excel "Ky nang"- (Tôi lấy sheet ky nang ra ngoài)
2. Tạo 4 file jpg (1,2,3 và 4) để cùng folder với file excel ở . file hình phải jpg nhé (không được chỉ đổi )
3. Áp dụng : Tại cột C, E, G và H, bạn gõ bất kỹ số nào nếu có file hình cùng sô thì nó sẽ hiện ra ở ô bên cạnh ( ở đây bạn chỉ dùng 4 hình)-Đã căng hình khít ô của .
Nếu kỹ năng thay đổi, bạn chỉ cần đổi số thì nó đổi hình. Dí nhiên bạn xóa số thì nó xóa hình.
Tương lại nếu bạn tạo thêm hình số 5 là Tốt nghiệp chứng chỉ - Ngôi sao vàng chẳng hạn. Thì bạn chỉ gõ số 5 ...
1714864857112.png
 

File đính kèm

  • Ky nang.rar
    26.9 KB · Đọc: 12
Upvote 0
Em có 2 sheet Thông tin và Kỹ năng, khi nhập số 1 2 3 4 bên sheet thông tin thì nó sẽ trả về hình 1 2 3 4 tương ứng bên sheet kỹ năng, và khi thay đổi số thì nó tự động nhảy hình.

Có một cách khác là không cần dùng file ảnh gì cả chỉ có điều nó không được định dạng thành 4 ô vuông đẹp như hình thôi. :D
- Không cần dùng file ảnh.
- Không bị nhấp nháy màn hình, hiển thị nhanh. (File của bạn @tle2003 không bị giật màn hình)

Screen Shot 2024-05-05 at 10.33.21.png
 
Lần chỉnh sửa cuối:
Upvote 0
Em cảm ơn các anh rất nhiều ạ, em đã dựa vào file của các anh gửi và tìm được hướng đi, cảm ơn các anh đã giúp đỡ em
 
Upvote 0
Upvote 0
Web KT
Back
Top Bottom