Soit un modèle de formulaire Word (à partir de la version 2007 qui contient des contrôles de contenu.

Si l'on souhaite récupérer la valeur d'un de ces contrôles de contenus et automatiser l'enregistrement du document en utilisant cette valeur, il faut créer une petite macro que l'on mettra dans le modè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.

Sub enregistre()
'macro écrite par m@rina
Dim controle As ContentControl
Dim mondoc
Set controle = ActiveDocument.ContentControls.Item(1)
nomdoc = controle.Range
ActiveDocument.SaveAs2 FileName:="C:...\" & nomdoc & ".docx"
End Sub

 

Si le numéro d'index du contrôle pose problème (contrôles trop  nombreux qui risquent de changer de place), on peut utilise le numéro d'identification (ID) qui, lui, ne change jamais. Voir ici.