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 17, 2024MVP
I'm sorry, that code is absolutely unreadable.
Muhammadiyya
Jul 17, 2024Brass Contributor
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C20:C21")) Is Nothing Then
Dim selectedcass As String
Dim selectedterm As String
selectedclass = Range("C20").Value
selectedterm = Range("C21").Value
Else: hideshapes
If selectedcass = "Pre-Kg" And selectedterm = "Second Term" Then
showshapes "PreKgReg", "KgSub", "PrekgSST2", "PrekgRCT2", "PrekgBST2"
Else: hideshapes
If selectedcass = "PreKg" And selectedterm = "Third Term" Then
showshapes "PreKgReg", "KgSub", "PrekgSST3", "PrekgRCT3", "PrekgBST3"
Else: hideshapes
If selectedcass = "Kg 1" And selectedterm = "First Term" Then
showshapes "KgoneReg", "KgSub", "KgoneSS", "KgoneRCT1", "KgoneBST1"
Else: hideshapes
If selectedcass = "Kg 1" And selectedterm = "Second Term" Then
showshapes "KgoneReg", "KgSub", "KgoneSST2", "KgoneRCT2", "KgoneBST2"
Else: hideshapes
If selectedcass = "Kg 1" And selectedterm = "Third Term" Then
showshapes "KgoneReg", "KgSub", "KgoneSST3", "KgoneRCT3", "KgoneBST3"
Else: hideshapes
If selectedcass = "Nursery 1" And selectedterm = "First Term" Then
showshapes "NuroneReg", "NurserySub", "NuroneSS", "NuroneRCT1", "NuroneBST1"
Else: hideshapes
If selectedcass = "Nursery 1" And selectedterm = "Second Term" Then
showshapes "NuroneReg", "NurserySub", "NuroneSST2", "NuroneRCT2", "NuroneBST2"
Else: hideshapes
If selectedcass = "Nursery 1" And selectedterm = "Third Term" Then
showshapes "NuroneReg", "NurserySub", "NuroneSST3", "NuroneRCT3", "NuroneBST3"
Else: hideshapes
End If
If selectedcass = "Nursery 2" And selectedterm = "First Term" Then
showshapes "NurtwoReg", "NurserySub", "NurtwoSS", "NurtwoRCT1", "NurtwoBST1"
Else: hideshapes
If selectedcass = "Nursery 2" And selectedterm = "Second Term" Then
showshapes "NurtwoReg", "NurserySub", "NurtwoSST2", "NurtwoT2", "NurtwoBST2"
Else: hideshapes
If selectedcass = "Nursery 2" And selectedterm = "Third Term" Then
showshapes "NurtwoReg", "NurserySub", "NurtwoSST3", "NurtwoRCT3", "NurtwoBST3"
Else: hideshapes
If selectedcass = "Basic 1" And selectedterm = "First Term" Then
showshapes "BasiconeReg", "PrimarySub", "BasiconeSS", "BasiconeRCT1", "BasiconeBST1"
Else: hideshapes
If selectedcass = "Basic 1" And selectedterm = "Second Term" Then
showshapes "BasiconeReg", "PrimarySub", "BasiconeSST2", "BasiconeRCT2", "BasiconeBST2"
Else: hideshapes
If selectedcass = "Basic 1" And selectedterm = "Third Term" Then
showshapes "BasiconeReg", "PrimarySub", "BasiconeSST3", "BasiconeRCT3", "BasiconeBST3"
Else: hideshapes
If selectedcass = "Basic 2" And selectedterm = "First Term" Then
showshapes "BasictwoReg", "PrimarySub", "BasictwoSS", "BasictwoRCT1", "BasictwoBST1"
Else: hideshapes
If selectedcass = "Basic 2" And selectedterm = "Second Term" Then
showshapes "BasictwoReg", "PrimarySub", "BasictwoSST2", "BasictwoRCT2", "BasictwoBST2"
Else: hideshapes.....
end if
end sub
Sub hideshapes()
Shapes("SsthreeReg").Visible = False
Shapes("SstwoReg").Visibe = False
Shapes("SsoneReg").Visible = False
Shapes("JssoneReg").Visible = False
Shapes("JsstwoReg").Visible = False
Shapes("JssthreeReg").Visible = False
Shapes("PreKgReg").Visible = False
Shapes("KgoneReg").Visible = False
Shapes("NuroneReg").Visibe = False
Shapes("NurtwoReg").Visible = False
Shapes("BasicfiveReg").Visible = False
Shapes("BasicfourReg").Visible = False
Shapes("BasicthreeReg").Visible = False
Shapes("BasiconeReg").Visibe = False
Shapes("KgSub").Visible = False
Shapes("NurserySub").Visible = False
Shapes("PrimarySub").Visibe = False
Shapes("JssSub").Visible = False
Shapes("SsSub").Visible = False
Shapes("BasicfiveSS").Visible = False
Shapes("BasicfourSS").Visible = False
Shapes("BasicthreeSS").Visible =False
Shapes("BasictwoSS").Visible = False
Shapes("BasiconeSS").Visible = False
Shapes("PrekgSS").Visible = False
Shapes("KgoneSS").Visible = False
Shapes("NurtwoSS").Visible = False
Shapes("NuroneSS").Visible = False
Shapes("JssoneSS").Visible = False
Shapes("JsstwoSS").Visible = False
Shapes("JssthreeSS").Visible = False
Shapes("SsthreeSS").Visible = False
Shapes("SstwoSS").Visible = False
Shapes("SsoneSS").Visible = Fase...
Sub showshapes(ParamArray shapeNames() As Variant)
Dim shapeName As Variant
For Each shapeName n shapeNames
On Error Resume Next
Shapes(shapeName).Visible = True
On Error GoTo 0
Next shapeName
End Sub
If Not Intersect(Target, Range("C20:C21")) Is Nothing Then
Dim selectedcass As String
Dim selectedterm As String
selectedclass = Range("C20").Value
selectedterm = Range("C21").Value
Else: hideshapes
If selectedcass = "Pre-Kg" And selectedterm = "Second Term" Then
showshapes "PreKgReg", "KgSub", "PrekgSST2", "PrekgRCT2", "PrekgBST2"
Else: hideshapes
If selectedcass = "PreKg" And selectedterm = "Third Term" Then
showshapes "PreKgReg", "KgSub", "PrekgSST3", "PrekgRCT3", "PrekgBST3"
Else: hideshapes
If selectedcass = "Kg 1" And selectedterm = "First Term" Then
showshapes "KgoneReg", "KgSub", "KgoneSS", "KgoneRCT1", "KgoneBST1"
Else: hideshapes
If selectedcass = "Kg 1" And selectedterm = "Second Term" Then
showshapes "KgoneReg", "KgSub", "KgoneSST2", "KgoneRCT2", "KgoneBST2"
Else: hideshapes
If selectedcass = "Kg 1" And selectedterm = "Third Term" Then
showshapes "KgoneReg", "KgSub", "KgoneSST3", "KgoneRCT3", "KgoneBST3"
Else: hideshapes
If selectedcass = "Nursery 1" And selectedterm = "First Term" Then
showshapes "NuroneReg", "NurserySub", "NuroneSS", "NuroneRCT1", "NuroneBST1"
Else: hideshapes
If selectedcass = "Nursery 1" And selectedterm = "Second Term" Then
showshapes "NuroneReg", "NurserySub", "NuroneSST2", "NuroneRCT2", "NuroneBST2"
Else: hideshapes
If selectedcass = "Nursery 1" And selectedterm = "Third Term" Then
showshapes "NuroneReg", "NurserySub", "NuroneSST3", "NuroneRCT3", "NuroneBST3"
Else: hideshapes
End If
If selectedcass = "Nursery 2" And selectedterm = "First Term" Then
showshapes "NurtwoReg", "NurserySub", "NurtwoSS", "NurtwoRCT1", "NurtwoBST1"
Else: hideshapes
If selectedcass = "Nursery 2" And selectedterm = "Second Term" Then
showshapes "NurtwoReg", "NurserySub", "NurtwoSST2", "NurtwoT2", "NurtwoBST2"
Else: hideshapes
If selectedcass = "Nursery 2" And selectedterm = "Third Term" Then
showshapes "NurtwoReg", "NurserySub", "NurtwoSST3", "NurtwoRCT3", "NurtwoBST3"
Else: hideshapes
If selectedcass = "Basic 1" And selectedterm = "First Term" Then
showshapes "BasiconeReg", "PrimarySub", "BasiconeSS", "BasiconeRCT1", "BasiconeBST1"
Else: hideshapes
If selectedcass = "Basic 1" And selectedterm = "Second Term" Then
showshapes "BasiconeReg", "PrimarySub", "BasiconeSST2", "BasiconeRCT2", "BasiconeBST2"
Else: hideshapes
If selectedcass = "Basic 1" And selectedterm = "Third Term" Then
showshapes "BasiconeReg", "PrimarySub", "BasiconeSST3", "BasiconeRCT3", "BasiconeBST3"
Else: hideshapes
If selectedcass = "Basic 2" And selectedterm = "First Term" Then
showshapes "BasictwoReg", "PrimarySub", "BasictwoSS", "BasictwoRCT1", "BasictwoBST1"
Else: hideshapes
If selectedcass = "Basic 2" And selectedterm = "Second Term" Then
showshapes "BasictwoReg", "PrimarySub", "BasictwoSST2", "BasictwoRCT2", "BasictwoBST2"
Else: hideshapes.....
end if
end sub
Sub hideshapes()
Shapes("SsthreeReg").Visible = False
Shapes("SstwoReg").Visibe = False
Shapes("SsoneReg").Visible = False
Shapes("JssoneReg").Visible = False
Shapes("JsstwoReg").Visible = False
Shapes("JssthreeReg").Visible = False
Shapes("PreKgReg").Visible = False
Shapes("KgoneReg").Visible = False
Shapes("NuroneReg").Visibe = False
Shapes("NurtwoReg").Visible = False
Shapes("BasicfiveReg").Visible = False
Shapes("BasicfourReg").Visible = False
Shapes("BasicthreeReg").Visible = False
Shapes("BasiconeReg").Visibe = False
Shapes("KgSub").Visible = False
Shapes("NurserySub").Visible = False
Shapes("PrimarySub").Visibe = False
Shapes("JssSub").Visible = False
Shapes("SsSub").Visible = False
Shapes("BasicfiveSS").Visible = False
Shapes("BasicfourSS").Visible = False
Shapes("BasicthreeSS").Visible =False
Shapes("BasictwoSS").Visible = False
Shapes("BasiconeSS").Visible = False
Shapes("PrekgSS").Visible = False
Shapes("KgoneSS").Visible = False
Shapes("NurtwoSS").Visible = False
Shapes("NuroneSS").Visible = False
Shapes("JssoneSS").Visible = False
Shapes("JsstwoSS").Visible = False
Shapes("JssthreeSS").Visible = False
Shapes("SsthreeSS").Visible = False
Shapes("SstwoSS").Visible = False
Shapes("SsoneSS").Visible = Fase...
Sub showshapes(ParamArray shapeNames() As Variant)
Dim shapeName As Variant
For Each shapeName n shapeNames
On Error Resume Next
Shapes(shapeName).Visible = True
On Error GoTo 0
Next shapeName
End Sub