How to copy an image object to new location in shame sheet, Excel.

A

Asko Telinen

Hi all.

I have an image object inserted into sheet. What i need is to make a
copy of that image and move it to new location using VBA. I tried
Duplicate method defined in Shape object but that doesn´t work. Sure it
makes a copy of Shape object and everything goes smoothly (no errors
during duplicate) but image inside original shape object will not be
copied to new one!!! All i get is empty shape object and no picture!!!
Do i miss something or this is an bug?

Code:

' Create a duplicate from
Set CopyShape = sourceShape.Duplicate()

' Set new position
CopyShape.Left = sourceShape.Left
CopyShape.Top = startRow.Top + sourceShape.Top


Tried this code in both, excel 97 and 2003 pro, same result....
All servicepacks are installed.

OS: Windows XP Pro.


cheers....

Asko.
 
T

Tom Ogilvy

Sub AABB()
' Create a duplicate from
Set SourceShape = ActiveSheet.Shapes(1)
Set StartRow = SourceShape.TopLeftCell
Set CopyShape = SourceShape.Duplicate()

' Set new position
CopyShape.Left = SourceShape.Left
CopyShape.Top = StartRow.Top + SourceShape.Height

End Sub

put a copy of the shape right below the original for me. xl2003.
 
T

Tom Ogilvy

One other thought. When you are playing with shapes, you can often get many
shapes on the sheet you are not aware of. Make sure the SourceShape
actually refers to the shape you are trying to copy.

sub CountShapes()
msgbox "there are " & Activesheet.shapes.count & _
" Shapes on the sheet"
End sub
 
A

Asko Telinen

Tom said:
One other thought. When you are playing with shapes, you can often get many
shapes on the sheet you are not aware of. Make sure the SourceShape
actually refers to the shape you are trying to copy.

sub CountShapes()
msgbox "there are " & Activesheet.shapes.count & _
" Shapes on the sheet"
End sub

Thanks for your reply. And you were right :)
There WAS an empty image right behind the image i wanted to copy
and the code took that image :) Silly me.
Seems like to every problem is simple answer.

Thanks again.

Asko.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top