I have a code that inserts images in range D2:D10
based on the cell value in range B2:B10
. So if I enter a correct value in B2
, an image will appear in D2
, etc. However, I want to add a checkbox that controls the visibility of the image.
So I want Excel to:
- show the image when the checkbox is true and the cell
B2
has a correct value - delete the image when the checkbox is false, even if B2 still has the correct value.
So I think the checkbox should be the action that starts the macro, but I don't know how to make this. Because now the macro runs when I enter a value. In my current code, I even don't have a checkbox.
I never made something like this. Is this possible to make?
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myPict As Picture
Dim PictureLoc As String
Dim rng As Range, cell As Range
Set rng = Range("B2:B10")
If Not Intersect(Target, rng) Is Nothing Then
Application.EnableEvents = False
PictureLoc = "C:\Users\" & Target.Value & ".png"
Set cell = Target.Offset(, 2)
With cell
On Error Resume Next
Set myPict = ActiveSheet.Pictures.Insert(PictureLoc)
myPict.Select
With Selection
.Height = 30
.Width = 60
.Top = cell.Top + cell.Height / 2 - .Width / 2
.Left = cell.Left + cell.Width / 2 - .Width / 2
Rows(Target.Row).RowHeight = .Height
End With
On Error GoTo 0
End With
Application.EnableEvents = True
End If
End Sub