Как получить статусную дату подпроекта MSP в генеральном плане из Excel VBA - PullRequest
0 голосов
/ 11 сентября 2018

Я создаю панель управления Excel, которую я хочу получить из моего отдела MSP Masterplan.

На данный момент мне удалось получить все необходимые данные, кроме даты состояния подпроектов.

Sub ImportMSPData()

Dim r As Range
Dim MSP As MSProject.Application
Dim proj As Project
Dim subproj As Subproject
Dim ligne As Long

Set MSP = CreateObject("MSProject.Application")
MSP.Visible = False

Application.ScreenUpdating = False
Application.EnableEvents = False

AppActivate MSP
If MSP.FileOpenEx(MasterplanPath, , , , , , , , , , , pjDoNotOpenPool) Then
    Set proj = MSP.ActiveProject
Else
    MsgBox "Fichier non trouvé : " & vbCrLf & Files.MspRoutine
    Exit Sub
End If

ligne = 1

For Each subproj In proj.Subprojects
        ThisWorkbook.Sheets("test").Cells(ligne, 1).Value = subproj.Path
        ThisWorkbook.Sheets("test").Cells(ligne, 2).Value = Left(subproj.InsertedProjectSummary.Name, 15)
        ThisWorkbook.Sheets("test").Cells(ligne, 3).Value = Mid(subproj.InsertedProjectSummary.Name, 19)
        ThisWorkbook.Sheets("test").Cells(ligne, 5).Value = subproj.InsertedProjectSummary.Start
        ThisWorkbook.Sheets("test").Cells(ligne, 6).Value = subproj.InsertedProjectSummary.Finish
        ligne = ligne + 1
Next
End Sub

Я могу получить Statusdate, просматривая все суперброекты, открывая их, считывая данные и закрывая после этого, но это занимает вечность в зависимости от количества подпроектов. Есть ли способ, которым я могу получить эту информацию в цикле здесь выше, не открывая подпроекты?

1 Ответ

0 голосов
/ 11 сентября 2018

Чтобы получить дату состояния для подпроектов, используйте свойство SourceProject для ссылки на базовые свойства подпроекта:

ThisWorkbook.Sheets("test").Cells(ligne, 7).Value = subproj.SourceProject.StatusDate
...