Hide and show picture based on the value with vlookup

jc83ph

New Member
Joined
Oct 9, 2014
Messages
31
Hello,

I need your help guys. I need to fix this code with formula(vlookup). when I enter the value in column A automatic the display the code in column B then the picture appears in column E.

But the problem is when I'm using the formula (vlookup) then display the serial based on the code but the picture not appear.
see below image.

Please note: there 2 sheets (sheet1 and sheet2). the sheet2 main source or main file.

Screen Shot 2019-12-16 at 8.32.40 PM.jpg


here the code:
VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
     
If Target.Count <> "1" Or Target.Column <> 2 Or Target.Value = "" Then Exit Sub
    Dim wbpath      As String
    Dim photoPath   As String
    Dim wB          As Workbook
    Dim wS          As Worksheet
    Dim wS2          As Worksheet
    Dim photoName   As String
    Dim photoFile   As String
    Dim Cell        As Range
    Dim rng         As Range
    Dim sh          As Shape

   
    Dim noPhoto     As String
    noPhoto = "NOPHOTO.jpg"
   
    Dim photoExt    As String
    photoExt = ".jpg"
   
    'Turn screen updating off. You won't see the client file being updated.
    Application.ScreenUpdating = True
    Set wB = ActiveWorkbook
    Set wS = wB.Worksheets("Sheet1")

   
   
   ' path to your folder
   
    wbpath = "/sample/PICTURE/" & Application.PathSeparator

    photoPath = "/sample/PICTURE/" & Application.PathSeparator
   
    Set Cell = Target
    If Not Cell.Column = 2 Or Len(Trim(Cell.Value)) = 0 Then Exit Sub
    photoName = Cell.Value
    Set rng = wS.Range("E" & Cell.Row)
    photoFile = photoName & photoExt
    GoSub placePhotoInSheet
    Err.Clear
    On Error GoTo 0
Application.ScreenUpdating = True
Exit Sub
   
deleteAllShapes:
For Each sh In wS.Shapes
    sh.Delete
Next sh
Return
   
placePhotoInSheet:
On Error Resume Next
wS.Shapes(photoName).Select
If Err.Number = 1 Then
    wS.Shapes(photoName).Visible = msoTrue
    Return
End If
GoSub deleteAllShapes
rng.Select
If Not Dir(photoPath & photoFile) = "" Then
    ActiveSheet.Pictures.Insert(photoPath & photoFile).Select
ElseIf Not Dir(wbpath & noPhoto) = "" Then
    ActiveSheet.Pictures.Insert(wbpath & noPhoto).Select
ElseIf Not Dir(photoPath & noPhoto) = "" Then
    ActiveSheet.Pictures.Insert(photoPath & noPhoto).Select
Else
    Return
End If
With Selection.ShapeRange
    .Name = photoName
    .LockAspectRatio = msoTrue
    .Top = rng.Top
    .Left = rng.Left
    '.Width = 141.75
    .Height = 500
    .IncrementLeft 0.75
    .IncrementTop -510
End With
rng.Offset(1, -rng.Column + 2).Select
Return

End Sub
 

Excel Facts

Excel motto
Not everything I do at work revolves around Excel. Only the fun parts.

Forum statistics

Threads
1,215,746
Messages
6,126,650
Members
449,326
Latest member
asp123

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top