J'essaie d'écrire une macro VBA Excel 2016 qui lira les données d'un projet Microsoft Project 2013 Summary (c'est un projet qui contient tous mes projets actifs) et résumer les données dans une feuille récapitulative dans Excel.Impossible de lire les tâches MS Project 2013 dans Excel 2016 VBA
Voici le code que j'ai jusqu'à présent:
Sub ExtractFromMsProject(ProjectPath As String)
Dim ProjectApp As MSProject.Application
Dim EachProject As MSProject.Project
Dim ProjectFile As MSProject.Project
Dim SubProjectFile As MSProject.SubProject
Dim SubProjectIndex As Long
On Error Resume Next
Set ProjectApp = GetObject(, "MSProject.Application")
If ProjectApp Is Nothing Then
Set ProjectApp = New MSProject.Application
End If
ProjectApp.DisplayAlerts = False
For Each EachProject In ProjectApp.Projects
If ProjectPath = EachProject.FullPath Then
Set ProjectFile = EachProject
Exit For
End If
Next
If ProjectFile Is Nothing Then
If ProjectApp.FileOpenEx(Name:=ProjectPath, ReadOnly:=True) Then
Set ProjectFile = ProjectApp.ActiveProject
Else
MsgBox "Unable to open the source project file '" & ProjectPath & "'."
Exit Sub
End If
End If
ProjectApp.Visible = True
For Each SubProjectFile In ProjectFile.Subprojects
Next
' For SubProjectIndex = 0 To ProjectFile.Subprojects.Count - 1
' Set SubProject = ProjectFile.Subprojects(SubProjectIndex)
' Next
ProjectApp.FileCloseEx pjDoNotSave
ProjectApp.Quit
End Sub
Il fonctionne très bien jusqu'à ce que je à:
For SubProjectIndex = 0 To ProjectFile.Subprojects.Count - 1
A cette ligne, je reçois un message d'erreur:
"Erreur d'automatisation: bibliothèque non enregistrée"
J'ai essayé de faire des recherches sur Google, mais tout ce que j'ai trouvé est pour une ancienne version de Office/Project.
Toute aide serait grandement appréciée.
Vous avez déclaré SubProject en tant qu'objet Task, et non en tant qu'objet SubProject. En outre, SubProject est un mot-clé; choisissez un non-mot-clé pour vos noms de variables. Cela dit, essayez 'For Each SubProj dans ProjectFile.SubProjects'. –
J'ai corrigé la déclaration de SubProject d'un objet Task à un objet SubProject ainsi que la mise à jour du nom de la variable SubProject à SubProjectFile selon votre suggestion et je reçois toujours la même erreur. D'autres idées? – Kyle
Jetez un oeil à cette page, il semble être pertinent: [Suppression des références périmées au projet ...] (http://kb.palisade.com/index.php?pg=kb.page&id=1418) –