Forum Discussion
LizeMarie
Dec 13, 2022Brass Contributor
Load Image from path into Image ActiveX Control in worksheet
I have the following code: Private Sub img_Browse_Click()On Error Resume Next Dim img As String Dim xCmpPath As String img = Application.GetOpenFilename If img <> False Then Me.img_Photo.Pic...
- Dec 13, 2022
In such situations, you should temporarily comment out the line
On Error Resume Next
because with it, you won't be notified of any errors.
You declare img as a String, but a String cannot be False. The line
If img <> False Thencauses a Type Mismatch error.
You should declare img as a Variant. That allows it to be any type, whether Boolean (False) or String (a file path).
In the second place, as far as I know, you cannot change the picture on an existing picture shape. You have to delete the existing picture and insert a new one.
Try this version - make sure that there is a shape (any shape) named img_Photo on Sheet3.
Private Sub img_Browse() Dim img As Variant Dim shp As Shape Dim x As Single Dim y As Single Dim w As Single Dim h As Single Dim xCmpPath As String 'On Error Resume Next img = Application.GetOpenFilename(FileFilter:= _ "Pictures (*.jpg;*.png;*.gif;*.bmp),*.jpg;*.png;*.gif;*.bmp") If img <> False Then Set shp = Sheet3.Shapes("img_Photo") x = shp.Left y = shp.Top w = shp.Width h = shp.Height shp.Delete Set shp = Sheet3.Shapes.AddPicture(img, False, True, x, y, h, w) shp.Name = "img_Photo" xCmpPath = img Sheet1.Range("AE1").FormulaR1C1 = xCmpPath End If End Sub
HansVogelaar
Jul 02, 2024MVP
The code for the REPORT CARD sheet should look like this:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim shp As Shape
Dim pth As Variant
Set rng = Intersect(Range("E4"), Target)
If Not rng Is Nothing Then
On Error Resume Next
Me.Shapes("STUDENTPIC").Delete
On Error Resume Next
pth = Application.VLookup(rng.Value, JSS1SS.Range("B:D"), 3, False)
If Err = 0 Then
Set shp = Me.Shapes.AddPicture(pth, False, True, 771, 80, 88, 93)
shp.Name = "STUDENTPIC"
End If
End If
End SubMuhammadiyya
Jul 02, 2024Brass Contributor
You're awesome sir, it's working perfectly. You made my day with this.
Thanks so much
Thanks so much