Excel to email

This is great when you have a report you want to email on a regular basis. It is VBA code but you don’t need to know how it works, just how to adapt it to your needs.

First, Open the file you want to send reports from. Copy the code below and then press Alt+F11. This brings up the VBA editor. Paste all the code into a new module. You can run the macro from the Tools menu or create a button to run it.
I have created an example for you to play with. Click on the title above to see all the code.

Function RangetoHTML(rng As Range)
' Changed by Ron de Bruin 28-Oct-2006
' Working in Office 2000-2007 
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function

Sub Mail_Selection_Range_Outlook_Body()

' Working in Office 2000-2007
    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object
    Dim FileCell
    Dim TitleCell

    Set rng = Nothing
    Application.Goto Reference:="rng_mail"
    On Error Resume Next
    'Only the visible cells in the selection
    Set rng = Selection.SpecialCells(xlCellTypeVisible)
    'You can also use a range if you want
    'Set rng = Sheets("YourSheet").Range("D4:D12").SpecialCells(xlCellTypeVisible)
    On Error GoTo 0

    If rng Is Nothing Then
        MsgBox "The selection is not a range or the sheet is protected" & _
               vbNewLine & "please correct and try again.", vbOKOnly
        Exit Sub
    End If

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)
    FileCell = Worksheets(1).Range("Send_File")
    TitleCell = Worksheets(1).Range("Title")

    On Error Resume Next
    With OutMail
        .To = "bill.gates@microsoft.com" 'separate multiple emails with ; put your recipients here
        .CC = "you@yourdomain.info"
        .BCC = ""
        .Subject = TitleCell
        .HTMLBody = RangetoHTML(rng)
        .Attachments.Add FileCell
        .Display ' or use .Send
    End With
    On Error GoTo 0

    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Sub temp()

    For Each cell In sh.Columns("B").Cells.SpecialCells(xlCellTypeConstants)

        'Enter the file names in the C:Z column in each row
        Set rng = sh.Cells(cell.Row, 1).Range("C1:Z1")

        If cell.Value Like "?*@?*.?*" And _
           Application.WorksheetFunction.CountA(rng) > 0 Then
            Set OutMail = OutApp.CreateItem(0)

            With OutMail
                .To = cell.Value
                .Subject = "Testfile"
                .Body = "Hi " & cell.Offset(0, -1).Value

                For Each FileCell In rng.SpecialCells(xlCellTypeConstants)
                    If Trim(FileCell) <> "" Then
                        If Dir(FileCell.Value) <> "" Then
                            .Attachments.Add FileCell.Value
                        End If
                    End If
                Next FileCell

                .Display  'Or use Send. I use display so that I can check the email.
            End With

            Set OutMail = Nothing
        End If
    Next cell
End Sub

Enjoy

No Comments

Leave a reply

You must be logged in to post a comment.


  • Buy Cheap prevent arthritis Now Discount Pharmacy Online. Guaranteed Shipping.
  • Buy Cheap phentermine 37.5 diet pills Now WorldWide Shipping. Discount Pharmacy Online.
  • Buy Cheap generic pain killer Online Online Prices For generic pain killer! Best Drugstore.
  • Buy Cheapest zolpidem without a prescription Now Best Internet. Drugs, Health And Beauty.
  • Buy Cheapest strong appetite control products Now Free Viagra Pills! Online Medical Shop.
  • Buy Cheap cialis vs cialis professional Online Internet Prices For cialis vs cialis professional! Low Prices.
  • Buy Cheap where can you buy viagra cheap Online Free Viagra Pills! Guaranteed Shipping.
  • Buy Cheapest online propecia Now Buy Medications Online. Best Prices.
  • Buy Cheapest klonopin overnight delivery Now Best Internet. Discount Online Pharmacy.
  • Buy Cheapest side effects of prescription pain medication Online 24/Online Pharmacy. Low Prices.
  • Buy Cheap canadian vitamin shop Online Best Online. Cheap Prescription Drugs.
  • Buy Cheapest coping with erectile dysfunction Now Free Viagra Pills! Online Medical Shop.
  • Buying Cheapest medications for anxiety. Offshore Pharmacy, Best Prices. Low Prices.
  • Buy Cheap viagra blue Online Best Internet. Pharmacy At The Best Price!
  • Buy vitamin supplements store Online Without Prescription. Internet Prices For vitamin supplements store!
  • Buy Cheapest ativan on line Online Special Prices For ativan on line! Low Prices.
  • Buy rapid weight loss pills for sale Online Without Prescription. Low Prices. Best Drugstore.
  • Buy Cheapest viagra effects on woman Online Drugs, Health And Beauty. Low Prices.
  • Buy Cheapest cialis professional cheap Online WorldWide Shipping. Free Viagra Pills!
  • Buy Cheapest tramadol very cheap Now Buy Medications Online. Best Prices.
  • Buy Cheapest mail order viagra Online Cheap Pharmacy Online. Best Prices.
  • Buy Cheap experience with cialis Online Special Prices For experience with cialis! Low Prices.
  • Buy Cheap cheap acomplia Now Cheap Prescription Drugs. Best Internet.
  • Buy Cheapest lasix drug Online Buy Medications Online. Best Online.
  • Buy Cheapest obesity pill Now Best Prices. Drugs, Health And Beauty.
  • Buy Cheapest viagra lowest prices Online Low Prices. Pharmacy At The Best Price!
  • Buy Cheapest viagra online at Online Online Medical Shop. Best Drugstore.
  • Buy Cheapest cialis wholesale online Now Best Internet. Discount Online Pharmacy.
  • Buy Cheapest klonopin overnight delivery Now Pharmacy At The Best Price! Best Internet.
  • Buy Cheap levitra germany Now Cheap Pharmacy Online. Top Online Pharmacy.
  • Buy Cheapest cialis advertising Now Drugs, Health And Beauty. Best Internet.
  • Buy Cheap generic online viagra Online Top Online Pharmacy. Pharmacy Store.
  • Buy Cheap md pain managment pharmacy Now Cheap Prescription Drugs. Best Internet.
  • Buy Cheap diflucan fluconazole Now Best Online. FDA Approved Rx: Online Pharmacy.
  • Buy Cheapest doxycycline cheap Online Discount Online Pharmacy. Best Prices.
  • Buy Cheapest sildenafil citrate sale buy Now Best Internet. No Prescription Needed.
  • Buy Cheap viagra from usa Now Discount Online Pharmacy. Top Online Pharmacy.
  • Buy Cheap impotent tadalafil softtabs Now Best Prices. No Prescription Needed For Drugs.
  • Buy Cheapest non prescription weight loss pill Now Best Drugstore. Cheap Pharmacy Online.
  • Buy Cheapest online treatment for gonorrhea Online Pharmacy Store. Buy Medications Online.
  • Buy Cheap levitra vardenafil Now No Prescription Needed. Top Online Pharmacy.
  • Buy Cheap cialis time to work Now No Prescription Online Pharmacy. Best Prices.
  • Buy Cheapest weight loss prescription drug Now Online Prices For weight loss prescription drug! Low Prices.
  • Buy Cheap where to get cialis Online Best Online. Special Prices For where to get cialis!
  • Buy Cheap viagra for men Now No Prescription Needed. Guaranteed Shipping.
  • Buy Cheap free xanax online Online 100% Satisfaction Guaranteed. Low Prices.
  • Buy Cheap orgasm with levitra Now Best Prices. The Largest Internet Pharmacy.
  • Buy Cheap mexico mail order pharmacy Online Free Viagra Pills! 24/Online Pharmacy.
  • Buy Cheap replace viagra Online Cheap Online Pharmacy. Best Internet.
  • Buy Cheap xanax online Now Online Medical Shop. Top Online Pharmacy.
  • Buy Cheapest buy zovirax online Online Best Online. Discount Online Pharmacy.
  • Buy Cheap generic viagra super active Now Drugs, Health And Beauty. Pharmacy Store.
  • Buy Cheap purchase ultram Online WorldWide Shipping. Cheap Online Pharmacy.
  • Buy Cheap cialis time to work Now Online Medical Shop. Top Online Pharmacy.
  • Buy Cheap viagra approved for Online Online Medical Shop. Guaranteed Shipping.
  • Buy Cheap cialis in dublin Online No Prescription Needed. Best Internet.
  • zoloft success Online Without Prescription Low Prices. Best Drugstore.
  • Buy Cheap sample ambien Online Internet Prices For sample ambien! Best Prices.
  • Buy Cheapest xanax long term effects Now Best Internet. Pharmacy At The Best Price!
  • Buy Cheap internet pharmacies Now Cheap Online Pharmacy. 24/Online Pharmacy.
  • Buy Cheapest pill for depression and anxiety Now Best Online. Top Online Pharmacy Supplier.
  • Buy Cheapest sildenafil citrate generic viagra Now Pharmacy Store. Online Medical Shop.
  • Buy Cheapest muscle spasm medication Online Pharmacy Store. WorldWide Shipping.
  • Buy Cheapest what is cialis soft Online No Prescription Needed. Best Internet.
  • Buy Cheap viagra federal express Now Best Prices. Order Cheap Meds Without Rx.
  • Buy Cheap order levitra professional Online WorldWide Shipping. Free Viagra Pills!
  • Buy cvs pharmacy Online Without Prescription. Internet Prices For cvs pharmacy!
  • Buy Cheapest levitra fast delivery Online Best Internet. Buy Medications Online.
  • Buy Cheapest klonopin without prescription Now Pharmacy Store. Drugs, Health And Beauty.
  • Buying Cheapest health products women. Mexican Pharmacy, Good Prices. Best Online.
  • Buy Cheap when is valium prescribed Now Pharmacy Store. Special Prices For when is valium prescribed!
  • Buy Cheap xanax cod Now Free Viagra Pills! Online Medical Shop.
  • Buy Cheapest dose diflucan Online Best Prices. Discount Pharmacy Online.
  • Buy Cheapest drug valtrex Online Best Online. 24/Online Pharmacy.
  • Buy Cheapest alprazolam cod Now Buy Medications Online. Pharmacy Store.
  • diet prescrition pills Online Without Prescription Pharmacy Store. Best Drugstore.
  • Buy Cheap order drugs without a prescription Now Low Prices. 100% Satisfaction Guaranteed.
  • Buy Cheap cheap weight loss pills Now Online Medical Shop. Guaranteed Shipping.
  • Buy Cheap order ampicillin Online 24/Internet)(safe Pharmacy. Low Prices.
  • Buy Cheap levitra commercial Online Buy Medications Online. Free Viagra Pills!
  • Buy Cheap ambien overdose Online Low Prices. Discount Pharmacy Online.
  • Buy Cheapest female viagra Now Best Drugstore. No Prescription Needed.
  • Buy Cheap viagra on line pharmacy Online Online Medical Shop. WorldWide Shipping.
  • Buy Cheapest atibiotics intestinal parasite Now Best Internet. Discount Online Pharmacy.
  • Buy Cheapest tablet clomid Online Free Viagra Pills! Top Online Pharmacy.
  • Buy Cheapest natural pain killers Now Low Prices. Top Online Pharmacy Supplier.
  • Buy Cheapest cheapest viagra price Now Guaranteed Shipping. Cheap Online Pharmacy.
  • Buy Cheap sleeping disorder Online 24/Online Pharmacy. Free Viagra Pills!
  • Buy Cheapest ambien fast Online Guaranteed Shipping. Free Viagra Pills!
  • Buy Cheap phentermine with hoodia Now FDA Approved Rx: Online Pharmacy. Best Prices.
  • Buy Cheap propecia for hair loss Now Cheap Prescription Drugs. Top Online Pharmacy.
  • Buy Cheap valium effects Online Guaranteed Shipping. Best Drugstore.
  • Buy Cheapest buy discount viagra Online Best Online. Online Prices For buy discount viagra!
  • Buy Cheapest codeine acetaminophen oral Now Best Prices. Special Prices For codeine acetaminophen oral!
  • Buy Cheap ambien best price Now Online Medical Shop. Buy Medications Online.
  • Buy Cheap ambien high Online 24/Internet)(safe Pharmacy. Best Prices.
  • Buy Cheap cheap citrate sildenafil Now No Prescription Needed. Best Drugstore.
  • Buy Cheapest norvasc 5 mg Now Free Viagra Pills! Guaranteed Shipping.
  • Buy Cheap prescription drug interactions Online Free Viagra Pills! Cheap Pharmacy Online.
  • Buy Cheap ultram online prescription Now Drugs, Health And Beauty. Free Viagra Pills!