With picture names in column, add picture to fit cell dimensions
Solved/Closed
elenimac
-
Updated on Oct 15, 2020 at 11:48 AM
TrowaD Posts 2921 Registration date Sunday September 12, 2010 Status Contributor Last seen December 27, 2022 - Oct 13, 2020 at 11:44 AM
TrowaD Posts 2921 Registration date Sunday September 12, 2010 Status Contributor Last seen December 27, 2022 - Oct 13, 2020 at 11:44 AM
Related:
- With picture names in column, add picture to fit cell dimensions
- Picture manager download - Download - Image viewing and management
- How to insert a picture into a picture in word - Guide
- 2007 microsoft office add-in microsoft save as pdf or xps - Download - Other
- Convert picture to shape powerpoint - Guide
- Add picture to gmail signature - Guide
1 response
TrowaD
Posts
2921
Registration date
Sunday September 12, 2010
Status
Contributor
Last seen
December 27, 2022
555
Oct 13, 2020 at 11:44 AM
Oct 13, 2020 at 11:44 AM
Hi Elenimac,
Have a look at the adjustments to your code, they are the comments starting with ***** (code line 33, 42, 43, 65):
Best regards,
Trowa
Have a look at the adjustments to your code, they are the comments starting with ***** (code line 33, 42, 43, 65):
Private Sub CommandButton1_Click()
Dim pictureNameColumn As String 'column where picture name is found
Dim picturePasteColumn As String 'column where picture is to be pasted
Dim pictureName As String 'picture name
Dim lastPictureRow As Long 'last row in use where picture names are
Dim pictureRow As Long 'current picture row to be processed
Dim pathForPicture As String 'path of pictures
pictureNameColumn = "A"
picturePasteColumn = "B"
pictureRow = 2 'starts from this row
'error handler
On Error GoTo Err_Handler
'find row of the last cell in use in the column where picture names are
lastPictureRow = Cells(Rows.Count, pictureNameColumn).End(xlUp).Row
'stop screen updates while macro is running
Application.ScreenUpdating = False
pathForPicture = "C:\Users\nicole.dalton\Desktop\pictures\"
'loop till last row
Do While (pictureRow <= lastPictureRow)
pictureName = Cells(pictureRow, "A") 'This is the picture name
'if picture name is not blank then
If (pictureName <> vbNullString) Then
'check if pic is present
If (Dir(pathForPicture & pictureName & ".jpg") <> vbNullString) Then '***** Removed e from .jpeg
Cells(pictureRow, picturePasteColumn).Select 'This is where picture will be inserted
ActiveSheet.Pictures.Insert(pathForPicture & pictureName & ".jpg").Select 'Path to where pictures are stored
With Selection
.Left = Cells(pictureRow, picturePasteColumn).Left
.Top = Cells(pictureRow, picturePasteColumn).Top
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = .TopLeftCell.RowHeight '***** Changed fixed value with variable
.ShapeRange.Width = .TopLeftCell.Width '***** Changed fixed value with variable
.ShapeRange.Rotation = 0#
End With
Else
'picture name was there, but no such picture
Cells(pictureRow, picturePasteColumn) = "No Picture Found"
End If
Else
'picture name cell was blank
End If
'increment row count
pictureRow = pictureRow + 1
Loop
Exit_Sub:
Range("A10").Select
Application.ScreenUpdating = True
Exit Sub
Err_Handler:
MsgBox "Error encountered. " & Err.Description, vbCritical, "Error"
GoTo Exit_Sub
End Sub '***** Added line
Best regards,
Trowa