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.
route217JuniorAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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

route217JuniorAuthor Commented:
Excellent feedback let me test...

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

just tried vba in the worksheet function and its not adding an workbook attachment...
Become a Certified Penetration Testing Engineer

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

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.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
route217JuniorAuthor Commented:
Hi bittersk

any thought on the worksheet function....
route217JuniorAuthor Commented:
Excellent ignore my previous email..buttersk
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Excel

From novice to tech pro — start learning today.