ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   insert picture (https://www.excelbanter.com/excel-programming/412946-insert-picture.html)

jonm

insert picture
 
hi, i'm new here so i would appreciate any assistance.

i have a spreadsheet that i would like to have a picture (selected by the
user) inserted into a specific cell. The user will enter data in the
spreadsheet and click a button to initiate the insert. The pictures may be
of varying size but should not exceed 400x400 once inserted into the
spreadsheet. Is this possible?



joel

insert picture
 
Here is some code I did for somebody else last week. Because your picture is
not square I test for which side is larger and then crop to 150. You have a
choice of croping or scaling the picture to the size you want. below I
cropped. to scale change the Width and Height of the picture instead of the
crop commands.


Sub InsertPict()

PictureName = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If PictureName < False Then

Set pict = ActiveSheet.Pictures. _
Insert(PictureName)
pict.ShapeRange.LockAspectRatio = msoTrue
'pict.ShapeRange.Height = PictureHeight <=deleted
pictwidth = pict.Width
CellWidth = Cells(9, Cell.Column).Width
WidthBorder = CellWidth - pictwidth
pict.Left = Cells(9, Cell.Column).Left + (WidthBorder / 1.8)

PictHeight = pict.Height
CellHeight = Cells(9, Cell.Column).Height
HeightBorder = CellHeight - PictHeight
pict.Top = Cells(9, Cell.Column).Top + (HeightBorder / 1.8)


If pict.Width pict.Height Then
If pict.Width CellWidth Then
If pict.Width 150 Then
Crop = (pict.Width - CellWidth) / 2
pict.ShapeRange.PictureFormat.CropLeft = Crop
pict.ShapeRange.PictureFormat.CropRight = Crop
End If
End If
Else
If CellHeight pict.Height Then
If pict.Height 150 Then
Crop = Abs(pict.Height - CellHeight) / 2
pict.ShapeRange.PictureFormat.CropTop = Crop
pict.ShapeRange.PictureFormat.CropBottom = Crop
End If
End If
End If
End If
End Sub


"jonm" wrote:

hi, i'm new here so i would appreciate any assistance.

i have a spreadsheet that i would like to have a picture (selected by the
user) inserted into a specific cell. The user will enter data in the
spreadsheet and click a button to initiate the insert. The pictures may be
of varying size but should not exceed 400x400 once inserted into the
spreadsheet. Is this possible?





All times are GMT +1. The time now is 12:24 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com