Pilotage MsProject2007 via une macro VBA dans excel2010 : Résolu

charly_babite

XLDnaute Nouveau
Bonjour à toute la communauté.

J'ai un petit soucis suite au passage excel2007 à excel2010.
J'ai une macro dans excel qui me permettait de récupérer des infos sur les tâches dans mon fichier MsProject avec :

Dim pj As MSProject.Application
Dim ts As Tasks

Set pj = New MSProject.Application
pj.FileOpen Name:=(Chemin_fichier & FichierMsProject), openPool:=pjDoNotOpenPool
Set monMsProj = pj.ActiveProject
Set ts = monMsProj.Tasks

C'est sur cette dernière ligne que le bas blesse.
Avec excel2007, ça se passait bien, mais avec excel2010, il me sort l'erreur
"Erreur Automation - Bibliothèque non inscrite"

Je n'ai aucune référence de manquante et j'ai les bibliothèques suivantes cochées :
Visual Basic For applications
Microsoft Excel 14.0 Object library
OLE automation
Microsft office 14.0 Object library
Microsfot Forms 201 Object library
Microsoft Project 12.0 Object library
Microsoft office Project 12.0 Calendar control
Microsoft Project 14.0 Task Launch control

Je ne vois pas d'erreur sinon que "monMsProj" n'est pas déclaré, mais je n'ai aucune idée de quel type il doit être.
Mais pas du tout certain que cela vienne de cela.

aurais-je oublié une bibliothèque particuliére ?

Merci d'avance à qui me pourra répondre.

A bientôt.

Charles.
 
Dernière édition:

charly_babite

XLDnaute Nouveau
Re : Pilotage MsProject2007 via une macro VBA dans excel2010

Bonjour,
en fait, j'essaie de parcourir les taches par ma macro Excel et trouver celle que je cherche avec :

For Each t In pj.ActiveProject.Tasks
If trouve = False Then
i = i + 1
If t.Name = NomTache Then
trouve = True
numTacheProject = i
End If
End If
Next

Mais dès que j'utilise l'argument ".Tasks", ou autre dédié aux taches, j'ai l'erreur "Erreur Automation - Bibliothèque non inscrite".

Je ne m'en sors pas.
Comprenez-vous ce qu'il se passe ?

Si quelqu'un pouvait m'aider, merci d'avance.
 

charly_babite

XLDnaute Nouveau
Re : Pilotage MsProject2007 via une macro VBA dans excel2010

Bonjour,
j'ai réussi à contourner mon problème en utilisant le "Late binding" :
Sub CreateProject_Late()
Dim pjApp As Object
Set pjApp = CreateObject("MSProject.Application")
pjApp.Visible = True
pjApp.FileNew
pjApp.ActiveProject.Tasks.Add "Hang clocks"
pjApp.FileSaveAs "Clocks.mpp"
pjApp.FileClose
pjApp.Quit
End Sub


puis en accédant aux tâches de la manière suivante :
For i = 1 To pj.ActiveProject.Tasks.Count
If trouve = False Then
If pj.ActiveProject.Tasks(i).Name = NomTache Then
trouve = True
numTacheProject = i
i = pj.ActiveProject.Tasks.Count
End If
End If
Next i

Merci quand même et en espérant que cela puisse dépanner quelqu'un .

bonne journée !
 

Statistiques des forums

Discussions
312 185
Messages
2 086 010
Membres
103 090
dernier inscrit
Createlier