No video

Excel VBA Macro: Paste Range (Table) As Image In Email Body

Excel VBA Macro: Paste Range (Table) As Image In Email Body. In this video, we go over how to automatically send an email with a table as a picture in the email message. We select a range of cells to create our table, copy and paste the range as an image, cut and then paste that image in our email body.
Code (KZread doesn't allow brackets; so LT and GT are used for less than and greater than, respectively):
Sub send_email_with_table_as_pic()
Dim OutApp As Object
Dim OutMail As Object
Dim table As Range
Dim pic As Picture
Dim ws As Worksheet
Dim wordDoc
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
'grab table, convert to image, and cut
Set ws = ThisWorkbook.Sheets("Population Data")
Set table = ws.Range("A1:C9")
ws.Activate
table.Copy
Set pic = ws.Pictures.Paste
pic.Cut
'create email message
On Error Resume Next
With OutMail
.to = "team@abc.com"
.CC = ""
.BCC = ""
.Subject = "Country Population Data " & Format(Date, "mm-dd-yy")
.Display
Set wordDoc = OutMail.GetInspector.WordEditor
With wordDoc.Range
.PasteandFormat wdChartPicture
.insertParagraphAfter
.insertParagraphAfter
.InsertAfter "Thank you,"
.insertParagraphAfter
.InsertAfter "Greg"
End With
.HTMLBody = "LT BODY style = font-size:11pt; font-family:Calibri GT" & _
"Hi Team, LTpGT Please see table below: LTpGT" & .HTMLBody
End With
On Error GoTo 0
Set OutApp = Nothing
Set OutMail = Nothing
End Sub
Data used in this video:
gsociology.ica...
#ExcelVBA #ExcelMacro

Пікірлер: 112

  • @ultimate_muu
    @ultimate_muu5 ай бұрын

    Thanks! Very helpful! I wanted to copy a table and paste the table in an email. I used the same code with minor changes. Code below for reference: del -->Set pic = ws.Pictures.Paste del -->pic.Cut change this line---> .PasteandFormat wdChartPicture to ---> .Paste

  • @greggowaffles

    @greggowaffles

    5 ай бұрын

    So glad you figured it out! Thank you so much!!!

  • @fabriceramazani465
    @fabriceramazani465 Жыл бұрын

    Thank you Sir! I spent 3 hours trying to write a code in VBA to send an email with embedded image in the email body, but external parties to my organization could not view the image. Now I came across your simple method and it works. Man I like the internet, thank you !!!

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    So happy to hear that!! No problem!!

  • @arianelourenco153
    @arianelourenco15320 күн бұрын

    Thks, Saved my day!!!!! Great Job 👏

  • @anticlimactic165
    @anticlimactic165 Жыл бұрын

    Been searching the web for a working code and yours is the only one that worked.

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    Glad to hear that!!

  • @FusionBliss711
    @FusionBliss7112 жыл бұрын

    This code really saved me! In conjunction with your other send email video as well. Keep up the good work, hope to see more from you soon!

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    Thanks for that! It really means a lot!!

  • @5639didi
    @5639didi Жыл бұрын

    Great Video! By the way how to adjust the pic size that we have been copy and cut in outlook?

  • @puxhay
    @puxhay2 күн бұрын

    Thanks you 😊. What about to show the default signature in outlook?

  • @ikemenman4995
    @ikemenman49952 жыл бұрын

    First time I've seen a video of yours, it was quite helpful. Thank you, Greg.

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    You’re welcome! Thank you for the feedback.

  • @purenrg4life
    @purenrg4life2 жыл бұрын

    Loving your videos man! Cannot believe you don't have more subs! Keep it up.. you're a great teacher and it is so SO helpful to have you talk through what you are doing in each video! Thanks so much for your efforts in making them

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    Really appreciate that! Thank you so much!!

  • @saraielizabethesparzagarci3544
    @saraielizabethesparzagarci35442 жыл бұрын

    Thanks so much for this video!! You made my day!! How do I add another table from a different sheet? 🤔

  • @paulSpagna
    @paulSpagna6 ай бұрын

    I just fund a small problem: If you want to display the email, works fine, but, if you do not want to open the email, suppose you want the email to go out at the click of a button, the problem is that the picture will not be copied to the email, and the email will go out blank..

  • @epark9925
    @epark9925 Жыл бұрын

    Just subscribed love the way you walk us through your codes in simple terms. Can you do a video on how to copy and paste a filtered dynamic table with hidden columns as an image into the email html body? Your help will be much appreciated.

  • @someidiotchild
    @someidiotchild Жыл бұрын

    How would we go about copying multiple ranges as images within the same email body?

  • @nikkiebrown2639
    @nikkiebrown26392 жыл бұрын

    This video made my entire day! Can you show how you would resize the chart?

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    absolutely! apologies for the delay. hope this video helps: kzread.info/dash/bejne/f3mdk89ymJyyZZs.html

  • @FalconFlyer75
    @FalconFlyer752 жыл бұрын

    much appreciated, exactly what I was looking for, Thanks

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    Awesome! Thanks for watching!!

  • @kimcelidonio9899
    @kimcelidonio9899 Жыл бұрын

    Hey greg, congrats for your videos. Its possible to resize the Image of the Range (table) in the email body? Thanks

  • @pessimistic5579

    @pessimistic5579

    10 ай бұрын

    simply resize the table being copied in excel itself.

  • @Dinosword2000
    @Dinosword2000 Жыл бұрын

    Thank you VERY MUCH! 👍

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    No problem! Thank you for watching!!

  • @Pokemoncharlizard
    @PokemoncharlizardАй бұрын

    What if there are 2 table pictures that we need to attached from 2 different tabs? Thank you for your help in advance.

  • @csabalubloy7693
    @csabalubloy76932 жыл бұрын

    Does anyone know why I receive run-time error 1004: Microsoft Excel cannot paste the data. at the following line: Set pic = ws.Pictures.Paste? If I press again on running the code it prepares the email, but at first it stucks always.

  • @nhatanhnguyenhuu2745
    @nhatanhnguyenhuu2745 Жыл бұрын

    thank you !! your code help me alot !!

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    No problem! So glad to hear that!!

  • @qiyang1996
    @qiyang19962 жыл бұрын

    Thank you for the tutorial! May i ask how to loop the function again to insert another table ?

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    no prob! thanks for watching!! im still looking into looping this code, but i have another video that essentially does the same thing. its just that the tables arent converted into images before being added to the email body: kzread.info/dash/bejne/a6Vsybx_YLi1pJs.html

  • @germanhamermiler1371
    @germanhamermiler1371 Жыл бұрын

    Hey! Good work. I have a question. When I run the macro The picture is pasted at the begining of the email and I need it at the bottom. How can i do it?

  • @mediamisfits3805
    @mediamisfits38052 жыл бұрын

    You man are epic!

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    Thank you!

  • @fatihakben6369
    @fatihakben63692 ай бұрын

    Hi Greg, This works almost perfectly! Except the ".HTML" and ."PasteandFormat wdChartPicture" both clobber everything else previously entered. Any Ideas? The

  • @pessimistic5579
    @pessimistic557910 ай бұрын

    This is great and works lovely, but i found that the code breaks when you replace .Display with .Send in the outmail with block. i want the email to send automatically without the outlook window popping up. is there a workaround?

  • @matheusgameiro61
    @matheusgameiro616 ай бұрын

    amazing, bro! thanks

  • @kenshinyusuke
    @kenshinyusuke Жыл бұрын

    Is there a solution for doing this twice in one email?

  • @user-wh2vk8wx8r
    @user-wh2vk8wx8r Жыл бұрын

    Thank you a lot, it will help a lot :D

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    I hope it does help! Thank you for watching!!

  • @michelledelrosario5610
    @michelledelrosario56102 жыл бұрын

    Hello sir. This absolutely works! Thank you! Although, when pasted in outlook, the image version of my selected range becomes small. Is there any way I could set the size of the image in outlook using vba? Thank you!

  • @timothyclayton2573

    @timothyclayton2573

    2 жыл бұрын

    i noticed the same problem.

  • @kreamypie
    @kreamypie5 ай бұрын

    What if i have multiple work sheets and i only want to grab the raange of the work sheet that i am currently on and convert it to image?

  • @ianlafferty2264
    @ianlafferty2264 Жыл бұрын

    Very very new to VBA, learning a lot from these videos.I keep getting a compile error: Method or data member not found? Seems to stop at Pic.Cut. Suggestions anyone?

  • @everteero5305
    @everteero53052 жыл бұрын

    Great video! Can you also make a video that shows how to pull distance info between 2 locations written in the cell from Bing Maps API into excel?

  • @asgerlarsen2083
    @asgerlarsen2083 Жыл бұрын

    Great video! Is it possible to copy and paste multiple tables as picture format? I have watched your other video that uses RangetoHTML to paste tables, but unfortunately this work poorly when pasting PivotTables, it struggles with the formatting. The method of pasting the ranged as a picture solves this problem, now I just need to be able to paste multiple ranges into the same email. Thanks for the help so far!

  • @jeromeradtke3015
    @jeromeradtke30152 жыл бұрын

    great video, thank you.:)

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    Thanks for watching!!

  • @tekygenie
    @tekygenie2 жыл бұрын

    Hey Greg Thank you so much for sharing these VBA tutorials. Helped me a lot to create one of my own. One help from you Instead of pasting in email, how can I export this image to a path

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    glad to hear that! thanks for watching! if you google SaveRangeAsPicture you should find some good stuff. ill make a video on this in the near future

  • @tekygenie

    @tekygenie

    2 жыл бұрын

    @@greggowaffles thank you again!!

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    No problem!

  • @graywolfweb1361
    @graywolfweb13612 жыл бұрын

    This is fantastic. I was struggling with how to do exactly this. Found other code but that code was WAY too complicated. Only thing I need to figure out is how to get my default signature to populate. If you have a suggestion that would be great. Gray.

  • @jaysekhon8014

    @jaysekhon8014

    2 жыл бұрын

    Open up Outlook. Go to File, Options, Mail, then click Editor Options under Compose Messages. Then Click Advanced, scroll down to the Insert/Paste pictures as: and select Square. See if that fixes your problem (:

  • @jeffmiller4405
    @jeffmiller4405 Жыл бұрын

    You are amazing!!!!

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    Thank you!!

  • @fazlifantom9233
    @fazlifantom923310 ай бұрын

    @greggowaffles how to Paste Range (Table) in email using different excel. I have multiple excel workbook, which have 1 table per customer. Is it possible to copy and paste from the workbook to the email body as range/table format?

  • @manuelcalderon8482
    @manuelcalderon84822 жыл бұрын

    Great Tutorial, Greg!!! thank you so much :) May I ask how would you increase the size of the pic on the email?

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    No prob! Thanks for watching! Hope this video helps: kzread.info/dash/bejne/k6eu0LCmp7KnhJs.html

  • @nathanwhite7268

    @nathanwhite7268

    2 жыл бұрын

    @@greggowaffles hey this video is great. How can I increase the size of this pic in the body of the email (where you copy and cut it from excel). I have looked at your other video where you do this but with a png that is saved in a file location, however I can't seem to get it to work with the excel sheet image.

  • @denzelhd

    @denzelhd

    2 жыл бұрын

    asking the same qn! The vid is resizing png, doesn’t seem to work for excel image

  • @gurpreetkaur-gd8np

    @gurpreetkaur-gd8np

    2 жыл бұрын

    Same question! issue in the size of image

  • @jasmadsen

    @jasmadsen

    2 жыл бұрын

    Has anybody ever found a solution to realize the table image in the body of the email?

  • @christophwissing4877
    @christophwissing487711 ай бұрын

    Very nice video . I used the code but my image is not in the new email automatically . I do the Strg v to get the image in the email. What is my mistake ?

  • @ramrosales447
    @ramrosales4472 жыл бұрын

    Thanks Greg. It works awesomely fine. Question though. Can we resize the attached range pic via "with pic"?

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    yes! apologies for the delay. hope this video helps: kzread.info/dash/bejne/f3mdk89ymJyyZZs.html

  • @ivanarciniegas7324
    @ivanarciniegas7324 Жыл бұрын

    thank you!🥰

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    You’re welcome!! Thank you for watching!!

  • @tonyod.1161
    @tonyod.11612 жыл бұрын

    Hi, great tutorial! However, our version is probably different, I can't define something as Picture in VBA... I tried Image and Graphic instead, but it give me a type mistmatch error. Anyone have an idea what can I use instead?

  • @denzelhd

    @denzelhd

    2 жыл бұрын

    Same question here! Do let us know Greg!

  • @kingLostSouls
    @kingLostSouls Жыл бұрын

    This is a great example however I when I adapted my code to use the picture appears after my signature. My code previously would generate a pdf and then create the HTMLbody to have some text and my signature. Any ideas?

  • @dennisprada945
    @dennisprada9452 жыл бұрын

    Hi Greg! What if I need to Paste Range AS Image in Mail Body but this range is not a Tablet but a mix of graphic?

  • @drewandres6359
    @drewandres6359 Жыл бұрын

    what is the code to paste range as images for two tables in the same sheet? thanks

  • @vivekkrishnagrawal889
    @vivekkrishnagrawal889 Жыл бұрын

    How to paste multiple range as picture ?

  • @harilibo
    @harilibo Жыл бұрын

    just awesome!

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    Thank you!!

  • @anferneechen6232
    @anferneechen6232 Жыл бұрын

    I tried the exact same codes but it only creates an email with To: and Subject: Why is the body blank?

  • @kayepatrick5809
    @kayepatrick5809 Жыл бұрын

    do you have ways how to add a link to the image pasted in the email body?

  • @robertomonteiro4713
    @robertomonteiro4713 Жыл бұрын

    Hi, I need to copy 2 differents grafics in 2 differents sheets, how can I do?

  • @MrJcole0502
    @MrJcole05023 ай бұрын

    This pastes the image when you display the picture without sending but when you change .display to .send, it sends it without the image. Has anyone figure this one out yet?

  • @LG-pv8kr
    @LG-pv8kr3 ай бұрын

    Great video,but it doesn't paste the Pic...😅

  • @minhtrungtran3675
    @minhtrungtran3675Ай бұрын

    Code debug at "set pic=ws.pictures.paste" with error Run time 1004. Can everyone help me?

  • @aksharkesari2299
    @aksharkesari22992 жыл бұрын

    This is amazing, Greg! Just one query, the image is overriding my Signature. Is there a way to fix it? Thanks

  • @jaysekhon8014

    @jaysekhon8014

    2 жыл бұрын

    Open up Outlook. Go to File, Options, Mail, then click Editor Options under Compose Messages. Then Click Advanced, scroll down to the Insert/Paste pictures as: and select Square. See if that fixes your problem (:

  • @timothyclayton2573
    @timothyclayton25732 жыл бұрын

    This works great Except the pasted image is very small. Too small to read. Is there an easy way to enlarge this?

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    yes! apologies for the delay. hope this video helps: kzread.info/dash/bejne/f3mdk89ymJyyZZs.html

  • @joshuatravatello1805
    @joshuatravatello1805 Жыл бұрын

    I keep getting Run-time error '429': ActiveX component can't create object!!! Do you have any advice, I've been breaking my head trying to figure this out.

  • @ThePlatinumaster
    @ThePlatinumaster Жыл бұрын

    Can I paste the image into a different range?

  • @hhouston7181
    @hhouston71812 жыл бұрын

    Hi, how would you increase the size of the pic on the email?

  • @nicingram1719
    @nicingram17192 жыл бұрын

    Is there any way I can paste a range of cells that are non contiguous?

  • @JoaoVaralta
    @JoaoVaralta Жыл бұрын

    Man, thanks for the video. I’m having and issue and I don’t know how to solve. It pastes nothing on the email body when I run the code. But if I press Ctrl+V I can paste the range on email body. How can I solve this?

  • @jefflunsford1331

    @jefflunsford1331

    Жыл бұрын

    Same here….

  • @JoaoVaralta

    @JoaoVaralta

    Жыл бұрын

    @@jefflunsford1331 man I wish I could help you but I don’t remember how I solved it. Try copying and pasting your script on chat gpt explaining you error. Maybe it could help you.

  • @stephenjhayes83
    @stephenjhayes83 Жыл бұрын

    newbie here, how to run this on a button?

  • @DiLombardi
    @DiLombardi6 ай бұрын

    pic.cut gives an error, has anyone figured it out?

  • @kontara
    @kontara2 жыл бұрын

    Thanks!

  • @greggowaffles

    @greggowaffles

    2 жыл бұрын

    Thank you so much! I really appreciate it!!

  • @seanharper1314
    @seanharper13142 жыл бұрын

    Can you automatically press send then move to the next worksheet?

  • @seanharper1314

    @seanharper1314

    2 жыл бұрын

    And do this until you get to the last worksheet

  • @balasubramaniandharmalinga5723
    @balasubramaniandharmalinga5723 Жыл бұрын

    Hi Greg, How can we add multiple tables to outlook?

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    Hope this helps! kzread.info/dash/bejne/a6Vsybx_YLi1pJs.html

  • @asgerlarsen2083

    @asgerlarsen2083

    Жыл бұрын

    @@greggowaffles Is it possible to add multiple tables, but pasted as pictures?

  • @Alexkip2008
    @Alexkip20082 жыл бұрын

    Hi i've got an error 424 on line Set OutMail = OutApp.CreateItem(0)

  • @Alexkip2008

    @Alexkip2008

    2 жыл бұрын

    sorry my fault .. it works :)

  • @changhi3743
    @changhi3743 Жыл бұрын

    This code does not work. It either uses methods that don't exist anymore or variables not declared.

  • @nicholaslorenzo8120
    @nicholaslorenzo812021 күн бұрын

    when I tried to use this line of code at work, I had pic.cut launch a massive stack of code that took a few minutes to run. Does anyone else have this same problem?

  • @MichaelVargas
    @MichaelVargas2 жыл бұрын

    @greggowaffles Great video, easy to follow. Do you know how to add the information as table instead of image?. Also, how can I add data from specific cell into the subject line?. This is the code that I have: Sub Send() Dim OutApp As Object Dim OutMail As Object Dim table As Range Dim pic As Picture Dim ws As Worksheet Dim wordDoc Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) 'grab table, convert to image, and cut Set ws = ThisWorkbook.Sheets("Form") Set table = ws.Range("B4:C21") ws.Activate table.Copy Set pic = ws.Pictures.Paste pic.Cut 'create email message On Error Resume Next With OutMail .To = "" .CC = "" .BCC = "" .Subject = "Credit Review for" & "" & Range("C4") & "" & Range("C6") .Display Set wordDoc = OutMail.GetInspector.WordEditor With wordDoc.Range .PasteandFormat wdChartPicture .insertParagraphAfter .insertParagraphAfter .InsertAfter "Regards," .insertParagraphAfter End With .HTMLBody = "Hello Risk Management, Could you please run a credit review of this location? " & .HTMLBody End With On Error GoTo 0 Set OutApp = Nothing Set OutMail = Nothing End Sub

  • @AlexWigal
    @AlexWigal Жыл бұрын

    When I run the code, I get a Run-time error '9': "Subscript out of range" When I select debug, it highlights "Set ws = ThisWorkbook.Sheets("EOSReport")" Any insight? Thank you!!

  • @greggowaffles

    @greggowaffles

    Жыл бұрын

    Maybe there’s a space “ “ in the tab name