Mise à jour d’un champ dans une zone de texte (Microsoft Word)
Jay a une situation où il a un champ de propriété de document inséré dans une zone de texte dans un document. Utiliser Ctrl + A puis appuyer sur F9 devrait mettre à jour tous les champs de document de propriété dans le document, mais ce champ n’est pas mis à jour par l’action de Jay. Le processus de mise à jour des champs dans les en-têtes et les pieds de page ne met pas non plus à jour le champ à l’intérieur de la zone de texte.
Jay se demande s’il existe un moyen de mettre à jour manuellement le champ à l’aide du clavier ou s’il existe un moyen de le mettre à jour à l’aide d’une macro.
Les champs peuvent être placés dans de nombreux éléments de document. Ils peuvent être, par exemple, dans le texte du document principal, dans des zones de texte, dans des en-têtes ou des pieds de page, dans des formes automatiques ou dans des tableaux spéciaux. Tout en appuyant sur Ctrl + A sélectionnera tout votre document, appuyer sur F9 ne mettra pas à jour les champs de tous les éléments du document. Au lieu de cela, vous devez utiliser une macro pour effectuer la mise à jour.
Si vous souhaitez simplement qu’une macro mette à jour les champs dans l’une de vos zones de texte, cela est assez simple à faire. La macro suivante parcourt chacune des formes de votre document (cela inclut les zones de texte et les formes automatiques)
et, si la forme contient du texte, mettez à jour tous les champs qu’elle contient.
Sub UpdateTBFields() Dim shp As Shape For Each shp In ActiveDocument.Shapes With shp.TextFrame If .HasText Then .TextRange.Fields.Update End If End With Next End Sub
Cette macro peut être affectée à un raccourci clavier afin que vous puissiez facilement mettre à jour les champs en appuyant simplement sur le raccourci. Bien sûr, vous voudrez peut-être développer une macro plus globale qui met à jour tous les champs, où qu’ils se trouvent. (N’oubliez pas: les champs peuvent être dans n’importe quel nombre d’éléments de document.) Dans ce cas, considérez la version plus complète de la macro suivante.
Public Sub UpdateAllFields() Dim doc As Document Dim wnd As Window Dim lngMain As Long Dim lngSplit As Long Dim lngActPane As Long Dim rngStory As Range Dim TOC As TableOfContents Dim TOA As TableOfAuthorities Dim TOF As TableOfFigures Dim shp As Shape ' Set Objects Set doc = ActiveDocument Set wnd = ActiveDocument.ActiveWindow ' get Active Pane Number lngActPane = wnd.ActivePane.Index ' Hold View Type of Main pane lngMain = wnd.Panes(1).View.Type ' Hold SplitSpecial lngSplit = wnd.View.SplitSpecial ' Get Rid of any split wnd.View.SplitSpecial = wdPaneNone ' Set View to Normal wnd.View.Type = wdNormalView ' Loop through each story in doc to update For Each rngStory In doc.StoryRanges If rngStory.StoryType = wdCommentsStory Then Application.DisplayAlerts = wdAlertsNone ' Update fields rngStory.Fields.Update Application.DisplayAlerts = wdAlertsAll Else ' Update fields rngStory.Fields.Update End If Next 'Loop through text boxes and update For Each shp In doc.Shapes With shp.TextFrame If .HasText Then shp.TextFrame.TextRange.Fields.Update End If End With Next ' Loop through TOC and update For Each TOC In doc.TablesOfContents TOC.Update Next ' Loop through TOA and update For Each TOA In doc.TablesOfAuthorities TOA.Update Next ' Loop through TOF and update For Each TOF In doc.TablesOfFigures TOF.Update Next ' Return Split to original state wnd.View.SplitSpecial = lngSplit ' Return main pane to original state wnd.Panes(1).View.Type = lngMain ' Active proper pane wnd.Panes(lngActPane).Activate ' Close and release all pointers Set wnd = Nothing Set doc = Nothing End Sub
_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 (12344) 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-Updating_a_Field_in_a_Text_Box [Mise à jour d’un champ dans une zone de texte]
.