Hi and welcome to VBAX
I would be inclined to put some code in the file that has the vendor number/mail addresses.
You could select the range and for each row, create a mail object, attach the file and send.
Using Outlook directly to send them it straight forward (Note: I haven't included any checks for the exisistence of the file, path etc)
Sub MailAllWorkbooks()
'If you integrate this with the filesave routine
'I guess you'll already have a filepath
Const strFILEPATH As String = _
"C:\Documents and Settings\Killian\Desktop\FilesToMail\"
'add a reference (VBE>Tools>References) to the
'Microsoft Outlook Object Model
Dim objOLApp As Outlook.Application
Dim objMail As Outlook.MailItem
Dim rngRow As Range
Set objOLApp = New Outlook.Application
'select the Vendor IDs you want to send
'the mail addresses should be in the next column
For Each rngRow In Selection
Set objMail = objOLApp.CreateItem(olMailItem)
With objMail
.Recipients.Add rngRow.Offset(0, 1).Text
.Attachments.Add strFILEPATH & rngRow.Text & ".xls"
.Body = "Some text for the mail body..."
.Send
End With
Next
objOLApp.Quit
End Sub
However, if you have a recent version/Service pack installed, the "Outlook Object Model Guard" will come into play, bringing up a warning message for code access to Outlook, then a timed message for each mail sent, that you'll have to click :-(
These are security features that are a good thing - unless you want to code for Outlook - Have a look in the Outlook forum for posts regarding this and the use of 3rd party addins, like Redemption