Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/02/2011, 00h20   #1
Invité de passage
 
Inscription : janvier 2009
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 3
Points : 0
Points : 0
Par défaut Colorier un texte entre 2 caractères

Bonsoir,

Pouvez-vous m’aider à faire une macro qui à partir d’un caractère de début déterminé et d’un caractère de fin déterminé change la couleur du texte entre ses 2 caractères sur l’ensemble d’un document.

Exemple :

Texte1 (essai) texte2 (mettre) texte
(en) texte (vert)

Résultat attendu :

Texte1 (essai) texte2 (mettre) texte
(en) texte (vert)

J’ai trouvé une macro sur le forum mais elle met tout en vert à partir du 1er caractère défini et le dernier caractère du texte. :

Texte1 (essai) texte2 (mettre) texte
(en) texte (vert)


Code :
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
Sub SelectionDunTextEntreBalises()
    Selection.HomeKey unit:=wdStory
    Do While Not fin
        With Selection
            With .Find
                .Text = "("
                .Execute
                .Forward = True
                fin = .Found = False
            End With
            .ExtendMode = True
            If Not fin Then
                With .Find
                    .Text = ")"
                    .Forward = True
                   .Execute
                End With
                Selection.Find.Execute
                Selection.Font.Color = wdColorGreen 
                Selection.Font.Bold = wdColorGreen 
                .ExtendMode = False
                .MoveRight unit:=wdWord, Count:=1
            End If
        End With
    Loop
End Sub
Merci d’avance.
iveli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 09h10   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 219
Points : 29 219
Salut,

Je pense que la méthode extend dans la recherche ne va pas conduire au résultat souhaité.

http://word.developpez.com/faq/index...rs_PlageSignet

Tu places le premier signet pour le premier caractère et le second signet pour le second caractère.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 13h54   #3
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 377
Points : 3 377
Salut Iveli,

Word te permet de le faire avec un seul rechercher/remplacer car Word te permet de retrouver tout le texte entre une parenthèse ouvrante et une fermante et de le remplacer par... lui-même mais de le faire passer en couleur verte (hue, ça marche aussi en rouge ). Regarde ce tutoriel sur le rechercher/remplacer dans Word, dans la partie "utilisation des caractères génériques".

Si tu as besoin de plus d'infos, n'hésite pas, on peut t'aider (mais on ne fera pas à ta place ).

@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/03/2011, 07h10   #4
Invité de passage
 
Inscription : janvier 2009
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 3
Points : 0
Points : 0
Citation:
Envoyé par Sepia Voir le message
Salut Iveli,

Word te permet de le faire avec un seul rechercher/remplacer car Word te permet de retrouver tout le texte entre une parenthèse ouvrante et une fermante et de le remplacer par... lui-même mais de le faire passer en couleur verte (hue, ça marche aussi en rouge ). Regarde ce tutoriel sur le rechercher/remplacer dans Word, dans la partie "utilisation des caractères génériques".

Si tu as besoin de plus d'infos, n'hésite pas, on peut t'aider (mais on ne fera pas à ta place ).

@+

J'ai fait des essais, je n'y arrive pas ce n'est pas intuitif.
iveli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 07h13   #5
Invité de passage
 
Inscription : janvier 2009
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 3
Points : 0
Points : 0
Voici une macro qui fonctionne:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Parenthes()
Selection.HomeKey unit:=wdStory
ScreenUpdating = False
With Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Replacement.Font.Bold = True
    .Replacement.Font.Color = wdColorGreen
    .MatchWildcards = True
    .Text = "(\(*\))"
    .Forward = True
    .Execute Replace:=wdReplaceAll
End With
 
End Sub
iveli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 23h12   #6
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 377
Points : 3 377
Salut iveli,

. N'oublie pas de cliquer sur pour indiquer qu'une réponse existe (positive ou négative).

@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h21.


 
 
 
 
Partenaires

Hébergement Web