View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Carlos Lozano Carlos Lozano is offline
external usenet poster
 
Posts: 18
Default 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