I am trying to copy tasks from a particular filter in MS Project to an Excel document. Here is what I have so far; however, I can't get the tasks to paste to the workbook. Any assistance would be great.
Public Sub Export_TopbarToExcel()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim t As Task
Dim pj As Project
Set pj = ActiveProject
Set xlApp = New Excel.Application
xlApp.Visible = True
'applies filter in project
FilterApply Name:="TopBarReport"
'selects filtered tasks and copies them
SelectAll
EditCopy
'adds new workbook
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
'Add the project header info in the top 2 rows
xlSheet.Cells(1, 1).Value = "Status Date"
xlSheet.Cells(1, 2).Value = pj.StatusDate
xlSheet.Cells(1, 3).Value = "Project Title"
xlSheet.Cells(1, 4).Value = pj.Title
'here is where the issue is...it is not pasting the selected info here
xlSheet.Activate
Range("A3").Activate
EditPaste
MsgBox "Done", vbInformation
End Sub
EditPaste
is a Project method so it is likely to be just copying and over-pasting the same content.
Also, activity in Excel could cause the copying process to be cancelled.
Move EditCopy
further down and use xlSheet.Paste
or the PasteSpecial
method of a Range to get the content in Excel.
'EditCopy
'adds new workbook
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
'Add the project header info in the top 2 rows
xlSheet.Cells(1, 1).Value = "Status Date"
xlSheet.Cells(1, 2).Value = pj.StatusDate
xlSheet.Cells(1, 3).Value = "Project Title"
xlSheet.Cells(1, 4).Value = pj.Title
'here is where the issue is...it is not pasting the selected info here
xlSheet.Activate
Range("A3").Activate
EditCopy 'happens in Project
'EditPaste
xlSheet.Paste 'happens in Excel
Additionally, you could add the headers to Excel after pasting. The two steps are not dependent.