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

 

Aprs 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 gre, 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 requtes SQL - SQL Query Analyzer.
  2. Modifier la base de donnŽes active : sŽlectionner ProjectServer.
  3. ExŽcuter la requte :
    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 trs longue

 

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