Appliquer une nouvelle formule ˆ tous les projets de la base de donnŽes Project Server

Avec l'aimable autorisation de msProjectExperts

http://www.projectserverexperts.com

 

Aprs avoir ajoutŽ un nouveau champ Entreprise personnalisŽ contenant une formule de calcul, Project Server ne recalcule pas automatiquement la formule dans les projets prŽexistants. Chaque projet doit tre ouvert individuellement, les calculs exŽcutŽs et enfin le projet sauvegardŽ.

 

La solution manuelle consiste pour chaque Responsable de projet – Project Manager – ˆ ouvrir chaque planning qu'il gre, presser la touche de fonction [F9] pour lancer le calcul du projet, et puis enregistrer le projet.

Cette procŽdure est fastidieuse si vous avez de nombreux projets. Une solution alternative consiste ˆ crŽer une procŽdure VBA qui automatisera ce process.

 

Avant de crŽer la procŽdure VBA, vous devez crŽer la liste des projets dans un fichier :

  1. Ouvrir Analyseur de requtes SQL - SQL Query Analyzer.
  2. Modifier la base de donnŽes active : sŽlectionner ProjectServer.
  3. ExŽcuter la requte :
    Use ProjectServer1382
    SELECT PROJ_NAME FROM MSP_PROJECTS WHERE PROJ_TYPE=0
  4. Clic dans la grille de rŽsultats
  5. Ctrl +A pour sŽlectionner tous les rŽsultats
  6. Clic Droit pour Enregistrer sousÉ - Save AsÉ
  7. Taper "Liste Projets" comme nom de fichier
  8. SŽlectionner un rŽpertoire : Mes Documents
  9. Clic Enregistrer - Save

 

Maintenant, vous pouvez Žcrire la procŽdure VBA proprement dite :

 

  1. Ouvrir Ms Project Professional en connexion sur Project Server
  2. Outils / Macro / Visual Basic Editor
    Tools / Macro / Visual Basic Editor
  3. Copier le code suivant dans un module vierge :

 

Sub Update_Calculated_Field()

 

    Dim strProj As String

    Dim fs As Object, Projs As Object, ts

    Set fs = CreateObject("Scripting.FileSystemObject")

    Set Projs = fs.GetFile("\\Pragmasvr\Mes documents PragmaSvr\Liste Projets.csv")

    Set ts = Projs.OpenAsTextStream

    'Steps thru each project in the file

    Do Until ts.AtEndOfStream

        strProj = ts.ReadLine

        FileOpen "<>\" & strProj  'Opens enterprise project

        Application.CalculateProject

        'Application.PublishAllInformation  'uncomment if you need to also publish the plans

        FileClose pjSave

    Loop

End Sub

 

 

NB : Dans cette procŽdure, il est admis que tous les projets sont bien ArchivŽs – Checked-in. D'autre part l'exŽcution de ce code peut tre trs longue

 

NB : Nombre maximum de fentres ouvrable dans MS Project Professional 2003 (Sous Windows 2000) : 50 fentres au maximum.