06 – Ecrire et lire les CustomDocumentProperties via VBA

Nous pouvons accéder manuellement à ces « Propriétés personnelles de document » par la séquence :

Fichier > Informations > Informations sur le projet > Propriétés avancées > Personnalisation 

Dans une application Visual Basic, il est possible d’y stocker des données utilisées par le programme VBA, informations qui pourront être mémorisées d’une session à l’autre.

La procédure VBA suivante vérifie l’existence d’une rubrique personnalisée. Si celle-ci n’existe pas, la procédure VBA la crée.

Si elle existe, la procédure VBA y dépose la valeur correspondante :

Nous utilisons la Propriété CustomDocumentProperties :

La Sub ci-dessous est appelée par une autre Sub qui lui passe deux variables : Nom et Valeur.

 

Sub StockInCDP(Nom, Valeur)   'Stocke 'SurfVoirie'; SurfBuroEtage;NbCell;SurfSolBur,.. dans CDP : Custom Document Properties

Dim Prop As DocumentProperty

Dim Existe As Boolean

Existe = False

For Each Prop In ActiveProject.CustomDocumentProperties

    If Prop.Name = Nom Then

        Existe = True                  'La CDP existe !

        Exit For

    End If

Next Prop

If Existe = False Then     'Il faut créer la propriété "GSVoirie"

    Application.ActiveProject.CustomDocumentProperties.Add _

    Name:=Nom, _

    LinkToContent:=False, _

    Type:=msoPropertyTypeString, _

    Value:=Valeur, _

    LinkSource:=False

Else                        'La CDP existe : la renseigner

    ActiveProject.CustomDocumentProperties(Nom) = Valeur

End If

End Sub

 

Lecture : de la Propriété CustomDocumentProperties.

Cette lecture est directe. Par exemple :

 

NbCell = ActiveProject.CustomDocumentProperties("GSNbCell")