surazshrestha
New Member
- Joined
- Mar 4, 2012
- Messages
- 45
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
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