Inserting Multiple Images into excel but on column A and column B with Height 150 , Width 45

surazshrestha

New Member
Joined
Mar 4, 2012
Messages
41
Hi Everyone,

Greetings,

I am arranging the normal catalogue on excel on below. I am able to put multiple images on column A only but not able to insert on column B.

Below VBA. Can you please help.

Sub InsertPicAndResizeToCell()
'with this macro (using the right mouse button) a picture can be inserted into the active cell
'the picture is resized into the cell keeping ratio
'where are the pictures?
Dim vPics
Dim iPic As Integer
vPics = Application.GetOpenFilename("All image files (*.JPEG;*.BMP),*.JPG;*.BMP", MultiSelect:=True)
If TypeName(vPics) = "Boolean" Then Exit Sub ' cancelled

Dim oNewPic As Shape
Dim Pic1 As Range

'cell or range of cells where the picture should be inserted:
Set Pic1 = ActiveWindow.RangeSelection

For iPic = LBound(vPics) To UBound(vPics)

'Insert the picture:
Set oNewPic = ActiveSheet.Shapes.AddPicture(Filename:=vPics(iPic), LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _
Left:=Pic1.Left + 0.5, Top:=Pic1.Top + 0.5, Width:=Pic1.Height, Height:=Pic1.Height)

'Maintain original aspect ratio and set to full size
oNewPic.LockAspectRatio = msoTrue
oNewPic.ScaleHeight factor:=1, RelativeToOriginalSize:=msoTrue
oNewPic.ScaleWidth factor:=1, RelativeToOriginalSize:=msoTrue

' 'Resize the picture to fit in the destination cells
If (oNewPic.Width / oNewPic.Height) < (Pic1.Width / Pic1.Height) Then
oNewPic.Height = Pic1.Height - 1.5
Else: oNewPic.Width = Pic1.Width - 1.5
End If
Set Pic1 = Pic1.Offset(1) ' replace Sheet1.ComboBox1 with reference to your combobox
Next

End Sub
 

Attachments

  • Untitled.jpg
    Untitled.jpg
    161.4 KB · Views: 28

Excel Facts

How to fill five years of quarters?
Type 1Q-2023 in a cell. Grab the fill handle and drag down or right. After 4Q-2023, Excel will jump to 1Q-2024. Dash can be any character.

BSALV

Well-known Member
Joined
Oct 31, 2010
Messages
1,450
Office Version
  1. 365
  2. 2013
  3. 2007
it places your new image in the activeCell, so if you move to the wanted cell before you run the macro it works.
Or you have to add the left and the top of the desired cell
VBA Code:
'Maintain original aspect ratio and set to full size
oNewPic.LockAspectRatio = msoTrue
oNewPic.ScaleHeight factor:=1, RelativeToOriginalSize:=msoTrue
oNewPic.ScaleWidth factor:=1, RelativeToOriginalSize:=msoTrue

oNewPic.Left = Range("D1").Left
oNewPic.Top = Range("D1").Top

' 'Resize the picture to fit in the destination cells
If (oNewPic.Width / oNewPic.Height) < (Pic1.Width / Pic1.Height) Then
oNewPic.Height = Pic1.Height - 1.5
 
Master Excel Bundle

Excel contains over 450 functions, with more added every year. That’s a huge number, so where should you start? Right here with this bundle.

Forum statistics

Threads
1,163,467
Messages
5,831,802
Members
430,087
Latest member
meagerd

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Top