+ Reply to Thread
Results 1 to 4 of 4

How can I link an Excel cel with an Outlook contact?

  1. #1
    Lou
    Guest

    How can I link an Excel cel with an Outlook contact?

    I am creating a schedule data base using excel and I would like to link names
    located in a cell with an outlook contact. The only info I can find is
    linking with word and access as a hyper link. Can this be done?



  2. #2
    Forum Expert Simon Lloyd's Avatar
    Join Date
    03-02-2004
    Location
    locked in the cage
    MS-Off Ver
    All the ones my homepage shows
    Posts
    3,161
    This may or may not help, i found this for copying Outlook Data youmay be able to use some of it or it may give you an idea how they act together.....

    Regards,
    Simon

    Dim strMessageBody As String
    Dim strAttachment As String
    Dim dtStartDate As Date
    Dim dtEndDate As Date
    Dim globalRowCount As Long

    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet

    Option Explicit

    Sub Export()

    Dim olApp As Outlook.Application
    Dim olSession As Outlook.NameSpace
    Dim olStartFolder As Outlook.MAPIFolder
    Dim olDestFolder As Outlook.MAPIFolder
    Dim strprompt As String
    Dim recipient As String
    Dim localRowCount As Integer


    Set xlApp = CreateObject("Excel.Application")

    'Initialize count of folders searched
    globalRowCount = 1

    ' Get a reference to the Outlook application and session.
    Set olApp = Application
    Set olSession = olApp.GetNamespace("MAPI")

    ' Allow the user to input the start date
    strprompt = "Enter the start date to search from:"
    dtStartDate = InputBox(strprompt, "Start Date", Now() - 7)

    ' Allow the user to input the end date
    strprompt = "Enter the end date to search to:"
    dtEndDate = InputBox(strprompt, "End Date", Now())

    ' UserForm1.Show


    If (IsNull(dtStartDate) <> 1) And (IsNull(dtEndDate) <> 1) Then

    ' Allow the user to pick the folder in which to start the search.
    MsgBox ("Pick the source folder (Feedback)")
    Set olStartFolder = olSession.PickFolder

    ' Check to make sure user didn't cancel PickFolder dialog.
    If Not (olStartFolder Is Nothing) Then
    ' Start the search process.
    ProcessFolder olStartFolder
    MsgBox CStr(globalRowCount) & " messages were found."
    End If

    xlApp.Quit

    ' strprompt = "Enter the recipient of the .html attachment in
    [email protected] format: "
    ' recipient = InputBox(strprompt, "Recipient's email",
    "[email protected]")

    ' DTSMailer strMessageBody, strAttachment
    ' DTSMailer commented out b/c no DTS package reference available
    on Users machine.

    ' MsgBox "Email sent to " & recipient
    MsgBox "Process is complete. Check K:\feedback\htm\ for available
    files."

    End If
    End Sub

    Sub ProcessFolder(CurrentFolder As Outlook.MAPIFolder)

    Dim i As Long
    Dim ValidEmails As Long
    ValidEmails = 0

    For i = CurrentFolder.Items.Count To 1 Step -1
    If ((CurrentFolder.Items(i).ReceivedTime >= dtStartDate) And
    (CurrentFolder.Items(i).ReceivedTime < dtEndDate)) Then
    ValidEmails = ValidEmails + 1
    End If
    Next

    If CurrentFolder.Items.Count >= 1 And ValidEmails >= 1 Then

    Dim localRowCount As Integer
    Dim xlName As String

    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1)

    localRowCount = 1
    xlName = CStr(Format(dtStartDate, "MMDDYYYY")) & "_" &
    CurrentFolder.Name & "_feedback"

    xlSheet.Cells(localRowCount, 1) = "SUBJECT"
    xlSheet.Cells(localRowCount, 2) = "SENDER"
    xlSheet.Cells(localRowCount, 3) = "RECEIVED DATE"
    xlSheet.Cells(localRowCount, 4) = "MESSAGE BODY"


    ' Late bind this object variable,
    ' since it could be various item types
    Dim olTempItem As Object
    Dim olNewFolder As Outlook.MAPIFolder


    ' Loop through the items in the current folder.
    ' Looping through backwards in case items are to be deleted,
    ' as this is the proper way to delete items in a collection.
    For i = CurrentFolder.Items.Count To 1 Step -1

    Set olTempItem = CurrentFolder.Items(i)

    ' Check to see if a match is found
    If ((olTempItem.ReceivedTime >= dtStartDate) And
    (olTempItem.ReceivedTime < dtEndDate)) Then
    localRowCount = localRowCount + 1
    globalRowCount = globalRowCount + 1
    xlSheet.Cells(localRowCount, 1) = olTempItem.Subject
    xlSheet.Cells(localRowCount, 2) =
    olTempItem.SenderEmailAddress
    xlSheet.Cells(localRowCount, 3) =
    CStr(Format(olTempItem.ReceivedTime, "MM/DD/YYYY"))
    ' Added this row of Code 4/3/06 jmr
    xlSheet.Cells(localRowCount, 4) =
    WorksheetFunction.Clean(olTempItem.Body)[/b]
    ' original code - commented out 4/3/06
    ' xlSheet.Cells(localRowCount, 4) =
    Replace(Replace(Replace(olTempItem.Body, Chr(9), " "), Chr(10) & Chr(10),
    Chr(10)), Chr(13), "")
    End If

    Next

    readability_and_HTML_export
    xlBook.SaveAs ("\\stm-fs1\marketing-shared\feedback\xls\" & xlName &
    ".xls")


    ActiveWorkbook.PublishObjects.Add( _
    SourceType:=xlSourceSheet, _
    FileName:="\\stm-fs1\marketing-shared\feedback\htm\" & xlName &
    ".htm", _
    Sheet:="Sheet1", _
    Source:="", _
    HtmlType:=xlHtmlStatic).Publish

    ' strAttachment = strAttachment &
    "\\stm-fs1\finapps\dynamics\feedback\" & xlName & ".htm; "

    xlBook.Save
    xlBook.Close

    End If

    ' New temp code - 040406

    ' Loop through and search each subfolder of the current folder.
    For Each olNewFolder In CurrentFolder.Folders

    Select Case olNewFolder.Name

    Case "Deleted Items", "Drafts", "Export", "Junk E - mail", "Notes"
    Case "Outbox", "Sent Items", "Search Folders", "Calendar", "Inbox"
    Case "Contacts", "Journal", "Shortcuts", "Tasks", "Folder Lists"
    Case Else
    ProcessFolder olNewFolder

    End Select

    Next olNewFolder

    ' The next five lines are the original code

    ' Loop through and search each subfolder of the current folder.
    ' For Each olNewFolder In CurrentFolder.Folders
    ' If olNewFolder.Name <> "Deleted Items" And olNewFolder.Name <>
    "Drafts" And olNewFolder.Name <> "Export" And olNewFolder.Name <> "Junk E -
    mail" And olNewFolder.Name <> "Outbox" And olNewFolder.Name <> "Sent
    Items" And olNewFolder.Name <> "Search Folders" And olNewFolder.Name <>
    "Calendar" And olNewFolder.Name <> "Contacts" And olNewFolder.Name <>
    "Notes" And olNewFolder.Name <> "Journal" And olNewFolder.Name <> "Shortcuts"
    And olNewFolder.Name <> "Tasks" And olNewFolder.Name <> "Folder Lists"
    And olNewFolder.Name <> "Inbox" Then
    ' ProcessFolder olNewFolder

    ' End If
    ' Next
    End Sub


    Private Sub readability_and_HTML_export()
    '
    ' readability_and_HTML_export Macro

    '
    Cells.Select
    Cells.EntireColumn.AutoFit
    Cells.EntireRow.AutoFit
    Columns("A:A").ColumnWidth = 32
    ' Range("A1").Select
    ' Range(Selection, Selection.End(xlDown)).Select
    ' Range(Selection, Selection.End(xlToRight)).Select
    Cells.Select
    With Selection
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlTop
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    With Selection.Borders(xlInsideVertical)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideHorizontal)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
    End With
    Range("A1:D1").Select
    With Selection.Interior
    .ColorIndex = 37
    .Pattern = xlSolid
    End With
    Selection.Font.Bold = True
    Columns("C:C").Select
    With Selection
    .HorizontalAlignment = xlLeft
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    If Columns("D:D").ColumnWidth < 80 Then
    Columns("D:D").ColumnWidth = 80
    End If

    If Columns("B:B").ColumnWidth > 40 Then
    Columns("B:B").ColumnWidth = 40
    End If
    End Sub



    'Private Sub DTSMailer(messagebody As String, attachmentstring As String)
    Private Sub DTSMailer()
    Dim oPKG As New DTS.Package

    oPKG.LoadFromSQLServer "SQLServer", , , _
    DTSSQLStgFlag_UseTrustedConnection, , , , "Feedback_Mailer"
    oPKG.FailOnError = True

    ' oPKG.GlobalVariables.Item("messagebody") = messagebody
    ' oPKG.GlobalVariables.Item("attachmentstring") = attachmentstring

    oPKG.Execute
    oPKG.UnInitialize
    Set oPKG = Nothing
    End Sub

  3. #3
    Greg Glynn
    Guest

    Re: How can I link an Excel cel with an Outlook contact?

    .... or you can use:

    Application.Outlook.Getnames

    This doesn't work, because I just made it up, but you must admit that
    it's much simpler than Simon's method.

    [sorry ... Just thought we all needed a laugh]


    Greg


  4. #4
    Forum Expert Simon Lloyd's Avatar
    Join Date
    03-02-2004
    Location
    locked in the cage
    MS-Off Ver
    All the ones my homepage shows
    Posts
    3,161
    Well Greg just goes to show i haven't the foggiest what i'm doing which is why i use this forum................i was trying to give a little help to an unanswered post.............. maybe all that information was a bit overpowering!

    Still it got him another response.....not quite what he was looking for but a response all the same.............are you sure that Application.Outlook.Getnames doesn't work?, it sounded bloody good, perhaps you missed your way!

    Regards,
    Simon

+ Reply to Thread

Thread Information

Users Browsing this Thread

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

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