Data table copy issue from excel to outlook meeting request body.

abhay_547

Board Regular
Joined
Sep 12, 2009
Messages
179
Hi All,

I have the below macro code which automatically sends the meeting requests from excel using outlook it works fine but I need to put some data as well on the meeting requests body when I am sending the meeting requests. my code copies the data as well on my meeting requests body but if my worksheet has a datatable with formatting then it just pastes the data with out any formatting. I am using dataobject method to copy the data to meeting body from excel sheet. I am using outlook 2003 so I can't use HTML method as Outlook 2003 doesn't support HTML for meeting requests. Below is my code :

Code:
Sub Sendmeetingrequests ()
' adds a list of appontments to the Calendar in Outlook
    Dim olApp As Outlook.Application
    Dim olAppItem As Outlook.appointmentItem
    Dim r As Long
    Dim myPath As String

    Application.ScreenUpdating = False
    myPath = ActiveWorkbook.Path

    DeleteTestAppointments    ' deletes previous test appointments
    On Error Resume Next
    Set olApp = GetObject("", "Outlook.Application")
    On Error GoTo 0
    If olApp Is Nothing Then
        On Error Resume Next
        Set olApp = CreateObject("Outlook.Application")
        On Error GoTo 0
        If olApp Is Nothing Then
            MsgBox "Outlook is not available!"
            Exit Sub
        End If
    End If

    r = 10    ' first row with appointment data in the active worksheet
    While Len(Cells(r, 1).Formula) > 0
        Set olAppItem = olApp.CreateItem(olAppointmentItem)    ' creates a new appointment

        With olAppItem
            ' set default appointment values
            .Start = Now
            .End = Now
            .Subject = "No subject"
            .Location = ""
            .Body = ""
            .ReminderSet = True
            .MeetingStatus = olMeeting

            ' read appointment values from the worksheet
            On Error Resume Next
            .Start = Cells(r, 1).Value + Cells(r, 2).Value
            .End = Cells(r, 1).Value + Cells(r, 3).Value
            .Subject = Cells(r, 4).Value
            .Location = Cells(r, 5).Value
            .ReminderSet = Cells(r, 8).Value
            .Importance = Right(Cells(r, 9).Value, 1)
            .RequiredAttendees = Cells(r, 10).Value
            .Categories = "TestAppointment"    ' add this to be able to delete the testappointments
            On Error GoTo 0
            .Save    ' saves the new appointment to the default folder
        End With

        [B]With olApp
            Dim Xl As Excel.Application
            Dim Ws As Excel.Worksheet
            Dim xlRn As Excel.Range

            Set Xl = GetObject(, "Excel.Application")
            Set Ws = Xl.Workbooks.Parent.Worksheets(Cells(r, 1).Offset(0, 5).Value)
            Set xlRn = Ws.Range("MailBodyText")


            Dim varBody As String
            Dim objdata As DataObject
            Dim DataObject As Object
            Set objdata = New DataObject

            Application.GoTo Reference:=xlRn
            Selection.Copy
            objdata.GetFromClipboard
            varBody = objdata.GetText

            With olAppItem
                .Body = varBody '& vbCrLf & vbCrLf
            End With
        End With[/B]

        olAppItem.Close olSave
        r = r + 1
        Sheets("scheduleapp").Activate
    Wend
    Set olAppItem = Nothing
    Set olApp = Nothing
    Application.ScreenUpdating = True
End Sub


Thanks a lot for your help in advance.:)
 

Excel Facts

Is there a shortcut key for strikethrough?
Ctrl+S is used for Save. Ctrl+5 is used for Strikethrough. Why Ctrl+5? When you use hashmarks to count |||| is 4, strike through to mean 5.

Forum statistics

Threads
1,215,684
Messages
6,126,200
Members
449,298
Latest member
Jest

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top