![]() |
I know selected picture is a shape but typename says is picture
Hi,
I am trying to move a shape that is selected to the left. Have the below code: Sub Test() Dim oSheet as workhseet Dim oShape as Shape Dim oObj as Object ' I don't know if the shape or something else is selected, so I get the object selected. set oSheet = Application.ActiveSheet oObj = Application.Selection if TypetName(oObj) = "Picture" then ' Shape selected set oShape = oObj ' Try to convert to oShape to access its properties. I get an error type mismatch here oShape.left = oShape.left - 60 end if End Sub Thank you, Carlos Lozano |
I know selected picture is a shape but typename says is picture
Carlos,
Did you copy this routine exactly? If so, you have a typo he "TypetName" Stan Scott New York City "Carlos Lozano" wrote in message ... Hi, I am trying to move a shape that is selected to the left. Have the below code: Sub Test() Dim oSheet as workhseet Dim oShape as Shape Dim oObj as Object ' I don't know if the shape or something else is selected, so I get the object selected. set oSheet = Application.ActiveSheet oObj = Application.Selection if TypetName(oObj) = "Picture" then ' Shape selected set oShape = oObj ' Try to convert to oShape to access its properties. I get an error type mismatch here oShape.left = oShape.left - 60 end if End Sub Thank you, Carlos Lozano |
I know selected picture is a shape but typename says is picture
Hi Carlos,
In addition to the typo pointed out by Stan, Dim oSheet as workhseet should be Dim oSheet as Worksheet This version of your code worked for me: Sub Test() Dim oSheet As Worksheet Dim oObj As Picture Set oSheet = ActiveSheet Set oObj = Selection oObj.Left = oObj.Left - 60 End Sub This version, where I move and resize the picture, also worked for me: Sub Test2() Dim oSheet As Worksheet Dim oObj As ShapeRange Set oSheet = ActiveSheet Set oObj = Selection.ShapeRange oObj.IncrementLeft 147.75 oObj.IncrementTop 11.25 oObj.ScaleWidth 0.9, msoFalse, msoScaleFromTopLeft oObj.ScaleHeight 0.9, msoFalse, msoScaleFromTopLeft End Sub --- Regards, Norman "Carlos Lozano" wrote in message ... Hi, I am trying to move a shape that is selected to the left. Have the below code: Sub Test() Dim oShape as Shape Dim oObj as Object ' I don't know if the shape or something else is selected, so I get the object selected. set oSheet = Application.ActiveSheet oObj = Application.Selection if TypetName(oObj) = "Picture" then ' Shape selected set oShape = oObj ' Try to convert to oShape to access its properties. I get an error type mismatch here oShape.left = oShape.left - 60 end if End Sub Thank you, Carlos Lozano |
I know selected picture is a shape but typename says is pictur
Thank you Norman and Stan.
The typos are only in the posting, not in thereal code. What helped me was the line: Dim oObj as Object Dim oImage as Picture Set oImage = oOBj ' THIS IS VALID, Hurray! This definition allows to convert the object to Image, so I was albe to access all its properties with no doubt about it and avoiding the trial and error time. I really needed the conversion as I don't know if the user selected a picture, cell, etc, I was not able to set it as Picture at the begining as it would crash if something else was selected. Thank you, Carlos Lozano "Norman Jones" wrote: Hi Carlos, In addition to the typo pointed out by Stan, Dim oSheet as workhseet should be Dim oSheet as Worksheet This version of your code worked for me: Sub Test() Dim oSheet As Worksheet Dim oObj As Picture Set oSheet = ActiveSheet Set oObj = Selection oObj.Left = oObj.Left - 60 End Sub This version, where I move and resize the picture, also worked for me: Sub Test2() Dim oSheet As Worksheet Dim oObj As ShapeRange Set oSheet = ActiveSheet Set oObj = Selection.ShapeRange oObj.IncrementLeft 147.75 oObj.IncrementTop 11.25 oObj.ScaleWidth 0.9, msoFalse, msoScaleFromTopLeft oObj.ScaleHeight 0.9, msoFalse, msoScaleFromTopLeft End Sub --- Regards, Norman "Carlos Lozano" wrote in message ... Hi, I am trying to move a shape that is selected to the left. Have the below code: Sub Test() Dim oShape as Shape Dim oObj as Object ' I don't know if the shape or something else is selected, so I get the object selected. set oSheet = Application.ActiveSheet oObj = Application.Selection if TypetName(oObj) = "Picture" then ' Shape selected set oShape = oObj ' Try to convert to oShape to access its properties. I get an error type mismatch here oShape.left = oShape.left - 60 end if End Sub Thank you, Carlos Lozano |
All times are GMT +1. The time now is 03:59 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com