Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Manually changing a picture (shape) name property | Excel Discussion (Misc queries) | |||
Connect a number to a picture bank and import that picture to exce | Excel Discussion (Misc queries) | |||
Picture displayed when item selected in a different cell | Excel Discussion (Misc queries) | |||
how do I insert picture into cell so vlookup can return picture? | Excel Worksheet Functions | |||
insert a picture in to a comment but picture not save on hard disk | Excel Discussion (Misc queries) |