S'il n'y a qu'un contrôle ou bien si le modèle ne risque pas d'être modifé, on peut utiliser le numéro d'index du contrôle :

La propriété Item(1) indique qu'on utilise le premier contrôle du modèle. Remplacer le numéro 1 par le numéro souhaité si nécessaire.


Dim controle As ContentControl
Set controle = ActiveDocument.ContentControls.Item(1)

On peut également utiliser le titre du contrôle. C'est plus sûr que le numéro d'item. Pour cela, affichez les propriétés du contrôle, et dans la boîte de dialogue, donnez un titre.

La macro suivante teste tous les contrôles de contenu du document et, si elle trouve le contrôle dont le titre est "mon_titre", elle donne le numéro du type de contrôle

Sub test()
Dim controle As ContentControl
For Each controle In ActiveDocument.ContentControls
If controle.Title = "mon_titre" Then
MsgBox "le contrôle mon_titre est de type " & controle.Type
End If
Next
End Sub
 

Sinon, on peut utiliser le numéro d'identification (ID) qui, lui, ne change jamais, quelles que soient les modifs qui seront faites dans le document et quel que soit l'emplacement du contrôle. Pour cela, on lance la macro suivante une fois afin de récupérer le numéro d'ID :

Sub test()
MsgBox ActiveDocument.ContentControls(1).ID
End Sub

 

Muni de ce numéro d'ID, on l'insère dans la macro, à la place des 0000000 de cet exemple.
Par exemple la macro suivante ajoute dans le nom du document la date du jour  :

Sub enregistre()
'macro écrite par m@rina
Dim controle As ContentControl
Dim mondoc, madate
For Each controle In ActiveDocument.ContentControls
If controle.ID = 0000000# Then
nomdoc = controle.Range
End If
Next
madate = Format(Now, "yyyy-MM-")
ActiveDocument.SaveAs FileName:="C:...\" & madate & nomdoc & ".docx"
End Sub


Statistiques

Aujourd'hui295
Hier2620
Cette semaine10763
Total depuis 20049549303

31
visiteurs actuellement en ligne