How to Insert a image from file to multiple sheets using VBA
Question
I have a workbook that has 54 sheets. "Master" Totals" and "Week1" through "Week52"
I am trying to insert an image from a file to a cell on the sheets "Week1" through to "Week52".
I have tried many codes and am able to get the image placed and sized correctly
the codes below both placed the image and I was able to manipulate them to get the image in the right spot and the right size.
I can't however make them run through the other sheets (Week1 through Week52)
Set oPic = Application.ActiveSheet.Shapes.AddPicture("C:\Users\Public\Documents\Cranes\MinerPic.wmf", False, True, 1, 1, 1, 1)
oPic.ScaleHeight 0.3, True
oPic.ScaleWidth 0.3, True
oPic.Top = Range("p2").Top
oPic.Left = Range("p2").Left
.OnAction = "FC4.xlsm!MineSheet"
or
pPath = "C:\Users\Public\Documents\Cranes\MinerPic.wmf"
With ActiveSheet.Pictures.Insert(pPath)
.Left = Range("p2").Left
.Top = Range("p2").Top
.ShapeRange.Height = 50
.ShapeRange.Width = 50
.OnAction = "FC4.xlsm!MineSheet"
At one stage I was able to place 52 images on top of each other. I suspect this has something to do with the Activesheet command.
I am extremely new to VBA and would appreciate any help.
Thanks in advance. Steve.
Solution
Wrap your code like this
For i = 1 To 52
Set sh = ActiveWorkbook.Worksheets("Week" & i)
' Reference the sh object rather than ActiveSheet
Set oPic = sh.Shapes.AddPicture( ...
' or
With sh.Pictures.Insert(pPath)
' rest of your code
Next
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow