brokerexecutives
asked on
How can I eliminate the category coding from Outlook
The coding below works like a charm, but is it possible to eliminate the need to always having to select a category when emailing? Below is a picture of what I'm doing each time I send an email. It would be nice if I could just send my email without having to select what category the contact was under to update "Date of Last Contact". Please advise.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Change the category name as needed'
Const TGT_CAT = "MassMail"
Const MACRO_NAME = "Item Send"
Dim olkFolder As Outlook.Items, olkContact As Outlook.ContactItem, olkProp As
Outlook.UserProperty
'--- Turn off error handling ---'
On Error Resume Next
'--- If the item being sent as an email ---'
If Item.Class = olMail Then
'--- If the item being sent is a member of the target category ---'
If InStr(1, Item.Categories, TGT_CAT) Then
'--- Get the Cotnacts folder ---'
Set olkFolder = Session.GetDefaultFolder(olFolderContacts).Items
'--- Was the contacts folder found? ---'
If TypeName(olkFolder) = "Nothing" Then
'--- No ---'
MsgBox "Could not find the Contacts folder", vbCritical + vbOKOnly, MACRO_NAME
Else
'--- Yes ---'
'--- Get the contact associated with the recipient email address ---'
Set olkContact = olkFolder.Find("[Email1Address] = '" &
Item.Recipients.Item(1).Address & "'")
'--- Was a matching contact found? ---'
If TypeName(olkContact) = "Nothing" Then
'--- No ---'
MsgBox "Could not find a contact with the address " &
Item.Recipients.Item(1).Address & " in the first email address slot.", vbCritical + vbOKOnly,
MACRO_NAME
Else
'--- Yes ---'
'--- Update the Last Contact property ---'
Set olkProp = olkContact.UserProperties("Date of Last Contact") '<- Change the
property name as needed'
olkProp.Value = Now
'--- Update the Attempts property ---'
Set olkProp = olkContact.UserProperties("Number of Attempts") '<- Change the
property name as needed'
olkProp.Value = Int(olkProp.Value) + 1
'--- Save the changes ---'
olkContact.Save
End If
End If
End If
End If
On Error GoTo 0
Set olkFolder = Nothing
Set olkContact = Nothing
Set olkProp = Nothing
End Sub
ASKER
90% of the people I contact are in my Outlook contacts. What harm would it do if the email was sent and a contact didn't exist?
I would love the code to work all the time. I'm constantly updating contacts with Date of Last Contact, so that would save me a ton of time.
I also attempted to do a mail-merge right now and couldn't find anywhere to select a category, so I think it would be necessary to not have it defined by category in order to send mail-merge.
I would love the code to work all the time. I'm constantly updating contacts with Date of Last Contact, so that would save me a ton of time.
I also attempted to do a mail-merge right now and couldn't find anywhere to select a category, so I think it would be necessary to not have it defined by category in order to send mail-merge.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
HAHAHHA. It worked! You are a genius! Like, I said, I owe you more than just point. You send me an email and I'll send you some cash. Seriously. Thank you sir! Big Smiles over here in Arizona!
ASKER
It worked like a charm. Thank you BDF.
Should the code process all emails or only certain ones?