Shelley développe une macro qui change toutes les permutations de majuscules de « à condition que » (« à condition que », « à condition que », etc.)

en minuscules. C’est assez facile à faire, mais si la phrase commence une phrase, le « P » doit être en majuscule. Shelley se demande s’il existe un moyen, dans une macro, de dire si une phrase telle que « à condition que » soit au début d’une phrase.

Il y a plusieurs façons de procéder. Tout d’abord, vous pouvez utiliser Rechercher et remplacer pour effectuer des recherches et des remplacements successifs. La macro pourrait effectuer les opérations suivantes:

  1. Remplacez toutes les variantes de «à condition que» par des minuscules.

  2. Recherchez «. A fourni que» (point, espace, «à condition que») et remplacez-le par «. À condition que» (majuscule appropriée).

  3. Répétez la recherche et remplacez à l’étape 2 en utilisant d’autres signes de ponctuation de fin de phrase tels qu’un point d’exclamation, un point d’interrogation ou l’un de ces signes de ponctuation suivis d’un guillemet.

Comme cela se fait dans une macro, le processus devrait aller très rapidement.

Voici un exemple qui pourrait faire le travail:

Sub ChangeCase1()

Dim vFindText As Variant     Dim vReplaceText As Variant     Dim orng As Range     Dim i As Long

vFindText = Array(". provided that", _                       "! provided that", _                       "? provided that", _                       "."" provided that", _                       "!"" provided that", _                       "?"" provided that")

vReplaceText = Array(". Provided that", _                          "! Provided that", _                          "? Provided that", _                          "."" Provided that", _                          "!"" Provided that", _                          "?"" Provided that")



' Set all occurrences to lowercase     Set orng = ActiveDocument.Range     With orng.Find         .ClearFormatting         .Replacement.ClearFormatting         Do While .Execute(FindText:="provided that", _           Forward:=True, _           Wrap:=wdFindStop) = True             orng.Select             orng = "provided that"

orng.Collapse wdCollapseEnd         Loop     End With

' Account for end-of-sentence     For i = 0 To UBound(vFindText)

Set orng = ActiveDocument.Range         With orng.Find             .ClearFormatting             .Replacement.ClearFormatting             Do While .Execute(FindText:=vFindText(i), _               MatchCase:=True, _               Forward:=True, _               Wrap:=wdFindStop) = True                 orng.Select                 orng = vReplaceText(i)

orng.Collapse wdCollapseEnd             Loop         End With     Next End Sub

Une des lacunes de cette approche est qu’elle ne permet pas que « à condition que » se produise au début d’un paragraphe. La macro pourrait être modifiée pour prendre en compte ces instances, mais ce serait plus complexe.

Cependant, vous pouvez utiliser une approche différente. Celui-ci repose sur un paramètre plutôt ésotérique pour la propriété Case: wdTitleSentence. Ce paramètre change tous les caractères (à une exception notable près) en minuscules et si la phrase est au début d’une phrase, le premier caractère sera remplacé par une majuscule. Voici comment vous pouvez l’utiliser dans une macro:

Sub ChangeCase2()

With Selection.Find         .ClearFormatting         .Wrap = wdFindContinue         .Forward = True         .Format = True         .MatchCase = False         .MatchWildcards = False         .Text = "provided that"

.Execute         While .Found             Selection.Range.Case = wdLowerCase             Selection.Range.Case = wdTitleSentence             Selection.Collapse Direction:=wdCollapseEnd             .Execute         Wend     End With End Sub

Notez que dans la boucle While, deux affectations sont apportées à la propriété Case. Le premier définit la sélection (ce qui a été trouvé) en minuscules et le second définit la casse du titre pour une phrase. Le paramètre en minuscules est spécifique pour gérer la « seule exception notable »

J’ai mentionné – si le texte « PROVIDED that » est au début d’une phrase, le paramètre wdTitleSentence ne le changera pas, pour une raison quelconque, en « Provided that ». Cependant, il changera « à condition que » (ce que « FOURNI cela » devient après l’avoir mis en minuscules) en « Fourni que » sans problème.

_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 (13398) s’applique à Microsoft Word 2007, 2010 et 2013.