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.
here the code:
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.
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