Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Nouveau membre du Club
    Word vba macro rechercher/remplacer qui mettrait en surbriance les zones modifiées
    Bonjour à tous d'un débutant

    J'ai une macro Rechercher/Remplacer qui corrige les insécables des ponctuations etc.

    Il me faut vérifier chaque modification effectuée par la macro, voir si elle est pertinente.

    Comme il s'agit de livres de 300 pages avec une centaine d'erreurs et 4000 ponctuations diverses, il me faudrait que les zones remplacées soient mise en surbrillance

    c'est totalement hors de portée pour moi de coder ça
    Je ne sais même pas placer une fenêtre de code ici

    Merci à qui voudra bien m'aider



    ? https://docs.microsoft.com/fr-fr/off...i/word.shading
    ? https://docs.microsoft.com/fr-fr/off...d.hithighlight
    ? https://docs.microsoft.com/fr-fr/off...ndpatterncolor
    ? https://docs.microsoft.com/fr-fr/off...terncolorindex

  2. #2
    Expert éminent sénior
    Citation Envoyé par Rockveleur Voir le message

    Bonjour,

    A tester.

    Le code ci-dessous met en surbrillance une seule chaîne dans un document.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    Sub MettreEnSurbrillanceUneChaine()
     
    Dim LeTXT As String
     
        LeTXT = "Rockveleur"
        Options.DefaultHighlightColorIndex = wdYellow
     
        With ActiveDocument.Content.Find
             .ClearFormatting
             With .Replacement
                  .ClearFormatting
                  .Highlight = True
             End With
             .Execute FindText:=LeTXT, ReplaceWith:=LeTXT, Format:=True, MatchCase:=True, MatchWholeWord:=True, Replace:=wdReplaceAll
        End With
     
    End Sub


    Celui-ci met en surbrillance tous les mots contenus dans une variable tableau.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Sub TestMettreEnSurbrillancePlusieursChaines()
     
    Dim LesTextes As Variant
    Dim I As Integer
     
        LesTextes = Array("chaine1", "chaine2", "chaine3")
     
        For I = LBound(LesTextes) To UBound(LesTextes)
             Debug.Print LesTextes(I)
             MettreEnSurbrillancePlusieursChaines wdYellow, LesTextes(I)
         Next I
     
    End Sub
     
     
    Sub MettreEnSurbrillancePlusieursChaines(ByVal CouleurSurbrillance As Long, ByVal ChaineATrouver As Variant)
     
    Dim MonRange As Range
     
        Options.DefaultHighlightColorIndex = CouleurSurbrillance
     
        Set MonRange = ActiveDocument.Range
        With MonRange.Find
             .ClearFormatting
             With .Replacement
                  .ClearFormatting
                  .Highlight = True
             End With
             .Execute FindText:=ChaineATrouver, ReplaceWith:=ChaineATrouver, Format:=True, MatchCase:=True, MatchWholeWord:=True, Replace:=wdReplaceAll
        End With
        Set MonRange = Nothing
     
    End Sub



    Celui-ci permet de remplacer des chaînes.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Sub TestRemplacerEtMettreEnSurbrillancePlusieursChaines()
     
    Dim LesTextes As Variant
    Dim I As Integer
     
       ' LesTextes = Array("chaine1", "RemplacementChaine1", "chaine2", "RemplacementChaine2", "chaine3", "RemplacementChaine3")
         LesTextes = Array("RemplacementChaine1", "chaine1", "RemplacementChaine2", "chaine2", "RemplacementChaine3", "chaine3")
     
         For I = LBound(LesTextes) To UBound(LesTextes) Step 2
             Debug.Print LesTextes(I) & ", " & LesTextes(I + 1)
             RemplacerEtMettreEnSurbrillancePlusieursChaines wdYellow, LesTextes(I), LesTextes(I + 1)
         Next I
     
    End Sub
     
    Sub RemplacerEtMettreEnSurbrillancePlusieursChaines(ByVal CouleurSurbrillance As Long, ByVal ChaineATrouver As Variant, ByVal ChaineRemplacante As Variant)
     
    Dim MonRange As Range
     
        Options.DefaultHighlightColorIndex = CouleurSurbrillance
     
        Set MonRange = ActiveDocument.Range
        With MonRange.Find
             .ClearFormatting
             With .Replacement
                  .ClearFormatting
                  .Highlight = True
             End With
             .Execute FindText:=ChaineATrouver, ReplaceWith:=ChaineRemplacante, Format:=True, MatchCase:=True, MatchWholeWord:=True, Replace:=wdReplaceAll
        End With
        Set MonRange = Nothing
     
    End Sub



    S'il faut mettre en surbrillance plus de 300 chaînes, la solution la plus simple est de les stocker dans un fichier Excel.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Nouveau membre du Club
    Word Rechercher-remplacer Comment surligner les remplacements
    La solution est dans le module Rechercher-remplacer, directement disponible dans Word.
    C'est à cause d'une erreur de présentation du menu R&R que cette option ne saute pas aux yeux..

    - Menu Accueil, choisir votre couleur de surlignage puis démarrer "Remplacer"
    - développer les options avec le bouton "Plus"
    - préparez votre recherche,
    - lorsque vous pointez au remplissage du champ "Remplacer", allez en bas du cadre de la fenêtre et voir "Rechercher", dessous développer "Format", "choisir Surlignage".

    Voyez maintenant sous le champ "Remplacement",
    le critère s'applique maintenant au "Remplacer", pas au Rechercher. C'est un gros piège



    Pour la macro générée par l'enregistrement, ça donne :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub Remplacer_et_surligner_OK()
    '
    ' Remplacer_et_surligner Macro_OK
    '
    ' Remplacements surlign?s dans le texte final
    '
    ' macro Rechercher-Remplacer pour surligner les remplacements effectués
     
    ' j'assure la couleur de surlignage, qui pourrait être sur aucune
        Options.DefaultHighlightColorIndex = wdPink
     
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
     
    ' ligne pour le futur surlignage des résultats
        Selection.Find.Replacement.Highlight = True
     
        With Selection.Find
            .Text = "Lorem"
            .Replacement.Text = "Coco Lorem Coco"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
     
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End Sub

  4. #4
    Nouveau membre du Club
    Merci Eric Kergresse pour ta réponse, sais tu comment ouvrir une fenêtre de code ? Cordialement

  5. #5
    Expert éminent sénior
    Citation Envoyé par Rockveleur Voir le message

    Tu sélectionnes ton texte et tu cliques sur le symbole # dans le menu.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter