Limitation des répertoires dans le champ FILENAME (Microsoft Word)
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.doc
Vous souhaiterez peut-être limiter les niveaux de répertoire affichés, comme indiqué dans ces deux exemples:
\Level2\Level3\Level4\Doc1.doc \Level1\Level2\Level3\Level4\Doc1.doc
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 inerte, 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.doc
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 (6399) s’applique à Microsoft Word 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban de Word (Word 2007 et plus tard) ici:
link: / wordribbon-Limiting_Directories_in_the_FILENAME_Field [Limitation des répertoires dans le champ FILENAME]
.