Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3904
  • Last Modified:

click email address hyperlink and attached open excel file

Hi Experts using excel 2007

is it possible when you click a hyperlink of a persons name, which is the email address to at the same time attach a copy of the open and current excel file to the email...you are about to send.
0
route217
Asked:
route217
  • 4
  • 2
1 Solution
 
Ken ButtersCommented:
Is the hyperlink in an excel worksheet?

If so you can use the following worksheet function:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
End Sub

Open in new window

0
 
route217Author Commented:
Excellent feedback let me test...

and yes it is an excel 2007 workbook...
0
 
route217Author Commented:
Hi buttersk

just tried vba in the worksheet function and its not adding an workbook attachment...
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
Ken ButtersCommented:
ok... let me expand on this...

The followhyperlink will execute after you have clicked on the link.  you will now have two simultaneous processes working.  Your spreadsheet and outlook.

So here is an overview of the order of events :

1) you click on the hyperlink
2) Outlook is opened an an email is created
3) the worksheet_FollowHyperlink function is called if it exists

When the worksheet_followhyperlink function is called, we need to add some specific code to the worksheet_followHyperlink function to add an attachment to the email.

To get at the Microsoft outlook library functions you should add a reference to :
Microsoft Outlook xx.x Object Library  xx.x will change depending upon your version of outlook.

In VB Editor go to tools / References and look for Microsoft outlook 12.0 object library or whatever the latest number you have available.

Then in the VBE project pane, select the worksheet that has the hyperlink

Add the following code to that worksheet.

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

    Dim newAttachment As attachment
    Dim mail As MailItem
    Dim olApp As Outlook.Application
    Dim inspectorObj As Inspector
    Dim TimeOutCounter As Integer
    
    
    Set olApp = New Outlook.Application
    Set inspectorObj = olApp.ActiveWindow
    
    '  May need to wait until outlook has opened and started email message
    '   --- also need a way to time-out in case outlook doesn't open the email
    
    TimeOutCounter = 0
    Do
        If inspectorObj.CurrentItem.Class = olMail Then: Exit Do
        Sleep 1000
        DoEvents
        TimeOutCounter = TimeOutCounter + 1
        If TimeOutCounter > 5 Then: Exit Do
    Loop
    
    If inspectorObj.CurrentItem.Class <> olMail Then: Exit Sub
    
    Set mail = inspectorObj.CurrentItem
    
    Set newAttachment = mail.Attachments.Add(ThisWorkbook.FullName, olByReference, , ThisWorkbook.FullName)
    newAttachment.DisplayName = ThisWorkbook.FullName

End Sub

Open in new window


Now when you click on the hyperlink, the current book should be added as an attachment to the email.

you should note that the workbook being attached is the version that was last saved.  So if you made changes you want emailed... you would have to save the workbook first.

you could do this by adding something like "thisworkbook.save" prior to adding it as an attachment.
0
 
route217Author Commented:
Hi bittersk

any thought on the worksheet function....
0
 
route217Author Commented:
Excellent ignore my previous email..buttersk
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now