+ Reply to Thread
Results 1 to 1 of 1

Take data from row and print in PDF and send my mail

  1. #1
    Registered User
    Join Date
    05-13-2014
    Location
    Shkoder, Albania
    MS-Off Ver
    Excel 2007
    Posts
    3

    Take data from row and print in PDF and send my mail

    Hi all and thanks for making work and life easier,

    I need to make some kind of of PDF from my payrol file for the emploee to show them some details from their salary and automatically send to them by mail.
    Is it possible, from my big excel file to grab data, create some kind of table in PDF and than send to the employee mail that could be in the same sheet in a colum next to the name ?
    This is what I was able to find but this one creates a new excel file with the persons name and details and attaches it to the mail and sends to the employee only his details. This is ok but i dont want to create a new file, i want to create some kind of PDF or picture and possibly put it on the boddy's mail.
    Any idea how can i do this ? I have attached the test file I'm using.

    Thanks very much!



    Sub Send_Row_Or_Rows_Attachment_1()
    'Working in 2000-2016
    'For Tips see: http://www.rondebruin.nl/win/winmail/Outlook/tips.htm
    Dim OutApp As Object
    Dim OutMail As Object
    Dim rng As Range
    Dim Ash As Worksheet
    Dim Cws As Worksheet
    Dim Rcount As Long
    Dim Rnum As Long
    Dim FilterRange As Range
    Dim FieldNum As Integer
    Dim mailAddress As String
    Dim NewWB As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim FileExtStr As String
    Dim FileFormatNum As Long

    On Error GoTo cleanup
    Set OutApp = CreateObject("Outlook.Application")

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

    'Set filter sheet, you can also use Sheets("MySheet")
    Set Ash = ActiveSheet

    'Set filter range and filter column (column with names)
    Set FilterRange = Ash.Range("A1:T" & Ash.Rows.Count)
    FieldNum = 1 'Filter column = A because the filter range start in column A

    'Add a worksheet for the unique list and copy the unique list in A1
    Set Cws = Worksheets.Add
    FilterRange.Columns(FieldNum).AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=Cws.Range("A1"), _
    CriteriaRange:="", Unique:=True

    'Count of the unique values + the header cell
    Rcount = Application.WorksheetFunction.CountA(Cws.Columns(1))

    'If there are unique values start the loop
    If Rcount >= 2 Then
    For Rnum = 2 To Rcount

    'Look for the mail address in the MailInfo worksheet
    mailAddress = ""
    On Error Resume Next
    mailAddress = Application.WorksheetFunction. _
    VLookup(Cws.Cells(Rnum, 1).Value, _
    Worksheets("Mailinfo").Range("A1:B" & _
    Worksheets("Mailinfo").Rows.Count), 2, False)
    On Error GoTo 0

    If mailAddress <> "" Then

    'Filter the FilterRange on the FieldNum column
    FilterRange.AutoFilter Field:=FieldNum, _
    Criteria1:=Cws.Cells(Rnum, 1).Value

    'Copy the visible data in a new workbook
    With Ash.AutoFilter.Range
    On Error Resume Next
    Set rng = .SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    End With

    Set NewWB = Workbooks.Add(xlWBATWorksheet)

    rng.Copy
    With NewWB.Sheets(1)
    .Cells(1).PasteSpecial Paste:=8
    .Cells(1).PasteSpecial Paste:=xlPasteValues
    .Cells(1).PasteSpecial Paste:=xlPasteFormats
    .Cells(1).Select
    Application.CutCopyMode = False
    End With

    'Create a file name
    TempFilePath = Environ$("temp") & "\"
    TempFileName = "Dati " & Ash.Parent.Name _
    & " " & Format(Now, "dd-mmm-yy h-mm-ss")

    If Val(Application.Version) < 12 Then
    'You use Excel 97-2003
    FileExtStr = ".xls": FileFormatNum = -4143
    Else
    'You use Excel 2007-2016
    FileExtStr = ".xlsx": FileFormatNum = 51
    End If

    'Save, Mail, Close and Delete the file
    Set OutMail = OutApp.CreateItem(0)

    With NewWB
    .SaveAs TempFilePath & TempFileName _
    & FileExtStr, FileFormat:=FileFormatNum
    On Error Resume Next
    With OutMail
    .To = mailAddress
    .CC = ""
    .BCC = ""
    .Subject = "Busta paga"
    .Attachments.Add NewWB.FullName
    .Body = "Ciao," & vbCrLf & "" & vbCrLf & "inviamo in allegato la busta paga del mese precedente." & vbCrLf & "Per qualsiasi chiarimento vi preghiamo di rivolgervi presso l'ufficio amministrazione." & vbCrLf & "" & vbCrLf & "Cordiali saluti"
    .Send 'Or use Send
    End With
    On Error GoTo 0
    .Close savechanges:=False
    End With

    Set OutMail = Nothing
    Kill TempFilePath & TempFileName & FileExtStr
    End If

    'Close AutoFilter
    Ash.AutoFilterMode = False

    Next Rnum
    End If

    cleanup:
    Set OutApp = Nothing
    Application.DisplayAlerts = False
    Cws.Delete
    Application.DisplayAlerts = True

    With Application
    .EnableEvents = True
    .ScreenUpdating = True
    End With
    End Sub
    Attached Files Attached Files

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. pulling data from 1 workbook to an other then send an e-mail
    By ianmarlow1981 in forum Excel Programming / VBA / Macros
    Replies: 0
    Last Post: 11-18-2014, 08:45 AM
  2. [SOLVED] cdo send send mail - getting my external .vbs script directly into a an excel worksheet
    By PieterBlan in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 05-09-2014, 08:10 AM
  3. Replies: 1
    Last Post: 03-11-2014, 12:24 PM
  4. Automatic send email (without even click send in mail software) with excel vba ??
    By alexnkc in forum Excel Programming / VBA / Macros
    Replies: 3
    Last Post: 02-17-2013, 08:31 PM
  5. [SOLVED] How to copy data as per particular name and send it to him via mail?
    By naveen4pundir in forum Excel General
    Replies: 12
    Last Post: 04-02-2012, 09:17 AM
  6. How to e-mail selected row and use e-mail address in a cell to send e-mail from excel
    By syedalamgir in forum Excel Programming / VBA / Macros
    Replies: 3
    Last Post: 12-27-2010, 02:15 AM
  7. Replies: 5
    Last Post: 06-15-2005, 02:05 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1