WISDOMBYDATA
  • BLOG
    • Blog Guide
    • Blog History
  • EXCEL
    • Functions & Formulas
    • VBA & Macros
    • VLOOKUP
    • Pivot Tables
    • Conditional Formatting
    • Tricks & Shortcuts
  • BI
    • SAP BOBJ/BW
    • Tableau
  • SQL
  • ABOUT
    • About WBD
    • About Me

Automatically insert an image into a spreadsheet by using a macro

12/31/2019

1 Comment

 

In this blog post I will illustrate how to insert an image into a spreadsheet by using a macro.

STEP 1] Save your spreadsheet as macro enabled workbook and go to Developer > Visual Basic >Insert> Module 
Picture
STEP 2] Insert the code below into the module

Sub InsertImage()
 
 Dim Pict() As Variant
 Dim ImgFileFormat As String
 Dim PictCell As Range
 Dim lLoop As Long
 Dim sShape As Picture
 ActiveSheet.Protect False, False, False, False, False  ImgFileFormat = "All Picture Files(*.emf;*.wmf;*.jpg;*.jpeg;*.jfif;*.jpe;*.png;*.bpm;*.gif;*.gfa;*.emz;*.wmz;*.pcz;*.tif;*.tiff;*.cgm;*.eps;*.pct;*.pict;*.wpg;*.pcd;*.pcx;*.cdr;*.fpx;*.mix), *.bmp"
 
 'The code above allows you to upload images in nearly all formats including JPG and PNG
 Pict = Application.GetOpenFilename(ImgFileFormat, MultiSelect:=True)
 If Not IsArray(Pict) Then
 Debug.Print "No files selected."
 Exit Sub
 End If
 
 Set PictCell = Selection.Cells(1)
 For lLoop = LBound(Pict) To UBound(Pict)
 Set sShape = ActiveSheet.Pictures.INsert(Pict(lLoop))
 With sShape
 If .Height < 408.75 Then
 PictCell.EntireRow.RowHeight = .Height
 End If
 .Top = PictCell.Top
 .Left = PictCell.Left
 End With
 Set PictCell = PictCell.Offset(1)
 Next lLoop
  
Application.ScreenUpdating = False
Application.DisplayAlerts = False

End Sub


Step 3]
Exit the Visual Basic editor and left click on the cell on which you would like the image inserted. Then run the VBA code by going to Developer>Macros.

Upon clicking the macro will prompt you to select a file form your device and as soon as you do so and click okay the image will appear in that selected cell. I used cell A3 as my destination cell and here is the result of running the macro.

Picture

​Alternatively, if you would like to avoid clicking on the cell on which you want the image to be inserted you could  use a code similar to the one below in order to have a particular cell automatically selected prior to having the main code run. This will help you save time and will let you indicate a fixed location for the image.

Sub selectCell()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Home").Select
Range("A3").Select
End Sub


This code could easily be created by recording a macro as well. Note that  in the code above, "Home" is the name of the particular tab and "A3" is the cell in which we want the image to be inserted.

​Once you insert the two pieces of code above into the module tab go to the "Thisworkbook" within the VBA editor and Call the two private subs as shown in the screenshot below and then run the sub CallImage ()

Picture

1 Comment
Nicole link
2/19/2024 03:43:59 am

Grateful for sharing this post

Reply



Leave a Reply.

    Categories

    All
    BI
    EXCEL
    MISC
    SQL

    Archives

    June 2020
    May 2020
    April 2020
    March 2020
    February 2020
    December 2019
    November 2019
    October 2019
    September 2019
    August 2019
    July 2019
    June 2019
    May 2019
    April 2019
    March 2019
    February 2019
    January 2019
    December 2018
    November 2018
    October 2018
    September 2018
    August 2018
    July 2018
    June 2018
    May 2018
    April 2018
    March 2018
    September 2017
    August 2017
    July 2017
    June 2017
    May 2017
    April 2017
    March 2017
    February 2017
    January 2017
    December 2016
    November 2016
    October 2016
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    February 2016
    May 2015
    April 2015
    March 2015
    February 2015
    January 2015
    December 2014
    November 2014
    October 2014
    September 2014
    August 2014
    April 2014
    March 2014
    February 2014
    January 2014
    December 2013
    November 2013

Powered by Create your own unique website with customizable templates.
  • BLOG
    • Blog Guide
    • Blog History
  • EXCEL
    • Functions & Formulas
    • VBA & Macros
    • VLOOKUP
    • Pivot Tables
    • Conditional Formatting
    • Tricks & Shortcuts
  • BI
    • SAP BOBJ/BW
    • Tableau
  • SQL
  • ABOUT
    • About WBD
    • About Me