Nathan rencontre fréquemment un problème avec des personnes qui capitalisent les titres de poste (par exemple, «Le directeur financier doit fournir …​») dans les documents.

Il aimerait qu’une macro vérifie chaque utilisation d’un titre de gestion et le casse en minuscules, à moins qu’il n’y ait une raison valable de mettre en majuscule le premier mot lorsque le titre commence une phrase. Il se demande s’il est possible, sans entrer les trente titres de gestion, de mettre en place un joker pour correspondre à n’importe quelle phrase de deux mots où le deuxième mot est «gestionnaire» ou «gestionnaires».

Il est possible d’effectuer une recherche générique pour trouver les types d’instances que vous recherchez. Tout ce que vous avez à faire est de faire une recherche avancée, assurez-vous que la case à cocher Utiliser les caractères génériques est cochée, puis utilisez ce modèle dans le champ Rechercher:

<[A-Za-z][a-z]{1,}>^32[Mm]anager*>

Le modèle trouvera deux mots où le deuxième mot est gestionnaire ou gestionnaires. Il trouvera les mots si les deux ou l’un des mots sont en majuscules ou si les deux mots sont en minuscules.

Le problème est qu’il n’est pas possible de changer un mot trouvé en utilisant des caractères génériques en minuscules. Cela signifie que vous devrez inspecter manuellement ce qui est trouvé, puis apporter les modifications nécessaires à la main. Si vous ne devez le faire que de temps en temps, ce n’est pas trop coûteux car la boîte de dialogue Rechercher et remplacer n’est pas modale. (Cela signifie que vous pouvez laisser la boîte de dialogue ouverte sur votre écran lorsque vous effectuez une modification dans le document, puis cliquez sur Suivant dans la boîte de dialogue pour trouver la prochaine occurrence correspondante.)

Si vous devez effectuer de tels changements assez souvent, la seule alternative est de créer une macro qui effectuera les changements pour vous. La macro suivante recherche le même modèle noté ci-dessus, puis modifie correctement la capitalisation des titres de poste. La macro recherche les intitulés de poste composés de deux mots, le second mot étant «manager», «Manager», «managers» ou «Managers». Il supprime ensuite toute capitalisation des mots à moins que le titre ne commence une phrase, auquel cas il supprime uniquement la majuscule du deuxième mot.

Sub FixManagerCapitalisation()

Dim aRange As Range     Dim bRange As Range

With Selection.Find         .ClearFormatting         .Text = "<[A-Za-z][a-z]{1,}>^32[Mm]anager*>"

.Replacement.Text = ""

.Forward = True         .Wrap = wdFindAsk         .MatchCase = False         .MatchWildcards = True         Do While .Execute             Set aRange = Selection.Range             Set bRange = Selection.Range             bRange.MoveEnd unit:=wdSentence             If bRange.Text <> Selection.Sentences(1).Text Then                 aRange = LCase(aRange.Words(1).Text) & Trim(aRange.Words(2))

End If             aRange = aRange.Words(1) & Trim(LCase(aRange.Words(2).Text))

aRange.Start = aRange.End             aRange.Select             .ClearFormatting         Loop     End With 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 (13080) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365.