Le champ FILENAME vous permet d’insérer le nom du fichier document dans le document lui-même. Si vous utilisez le commutateur / p avec le champ, vous obtenez non seulement le nom du fichier, mais également le chemin complet du fichier:

{ FILENAME /p }

Comme vous pouvez l’imaginer, le nom du chemin peut devenir assez long, en fonction de l’organisation de votre disque dur et de l’endroit où vous avez stocké le document. Pour cette raison, vous souhaiterez peut-être choisir de manière sélective les niveaux du chemin inclus dans ce que FILENAME renvoie. Par exemple, ce qui suit peut être le nom de chemin complet du document:

C:\My Documents and Settings\Level1\Level2\Level3\Level4\Doc1.docx

Vous souhaiterez peut-être limiter les niveaux de répertoire affichés, comme indiqué dans ces deux exemples:

\Level2\Level3\Level4\Doc1.docx \Level1\Level2\Level3\Level4\Doc1.docx

Malheureusement, il n’existe aucun moyen de le faire avec le champ FILENAME lui-même; cela n’inclut tout simplement pas cette capacité. La seule solution est de créer une macro qui détermine le nom du chemin et insère les niveaux souhaités dans le document. Par exemple, la macro suivante insérera, au point d’insertion, le nombre souhaité de niveaux de répertoire pour le fichier courant:

Sub SelectPaths()

Dim sPath As String     Dim sName As String     Dim sFull As String     Dim sPart As String     Dim sMsg As String     Dim sTemp As String     Dim iLevels As Integer     Dim J As Integer

sPath = ActiveDocument.Path     If sPath = "" Then         MsgBox "Need to save before running this macro.", _           vbOKOnly, "This Document Not Saved"

Else         sPath = sPath & Application.PathSeparator         sName = ActiveDocument.Name         sFull = sPath & sName

sMsg = "This is the full path:" & vbCrLf         sMsg = sMsg & sFull & vbCrLf & vbCrLf         sMsg = sMsg & "How many levels do you want, counting "

sMsg = sMsg & "from right to left?"



sTemp = InputBox(sMsg)

iLevels = Val(sTemp)



sPart = ""

If iLevels > 0 Then             For J = Len(sFull) To 1 Step -1                 If Mid(sFull, J, 1) = Application.PathSeparator Then                     iLevels = iLevels - 1                     If iLevels = 0 Then                         sPart = Mid(sFull, J, 255)

Exit For                     End If                 End If             Next J         End If

Selection.TypeText (sPart)

End If End Sub

Si le document n’a pas été enregistré, la macro ne s’exécutera pas. Cela fonctionne en comptant essentiellement le nombre de séparateurs de chemin (barres obliques), en commençant à la fin du chemin. Il insère ensuite uniquement la partie du chemin à partir de ce point.

L’inconvénient d’une macro comme celle-ci, bien sûr, est qu’elle n’est pas dynamique, comme le sont les champs. Il insère simplement du texte. Si vous modifiez ultérieurement l’emplacement du document ou si vous modifiez le nom du document, vous devez réexécuter la macro pour insérer le nouveau texte de chemin.

Si votre raisonnement derrière l’insertion d’une partie seulement du chemin est que le chemin est trop long lorsqu’il est inclus dans son intégralité, il existe une autre approche que vous pourriez adopter. Pourquoi ne pas simplement réduire la taille en points de la partie du chemin qui n’est pas importante. Par exemple, disons que vous utilisez le champ FILENAME pour insérer le chemin, et il apparaît comme ceci:

C:\My Documents and Settings\Level1\Level2\Level3\Level4\Doc1.docx

Si vous souhaitez masquer la partie à gauche de « Niveau2 », sélectionnez simplement ce texte dans les résultats du champ et formatez-le avec une très petite taille en points. Si vous définissez une taille de point comme 6 ou 7 points, la partie désaccentuée est toujours lisible, mais le chemin complet ne prend pas autant d’espace linéaire dans votre document. Si vous souhaitez que la partie désaccentuée disparaisse essentiellement, vous pouvez définir la taille du point sur 1 point.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

WordTips est votre source pour une formation Microsoft Word rentable.

(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (13292) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365. Vous pouvez trouver une version de cette astuce pour le ancienne interface de menu de Word ici:

link: / word-Limiting_Directories_in_the_FILENAME_Field [Limitation des répertoires dans le champ FILENAME].