IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

VBA Word Discussion :

Identifier couleur de surlignage


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 32
    Points
    32
    Par défaut Identifier couleur de surlignage
    Bonjour,

    Dans mon document le texte en italique est surligné en jaune, et le texte en gras est surligné en rouge.

    Je suis obligé à un moment d'effacer la mise en forme de mon document, par conséquent je perds l'italique et le gras mais mon surlignage reste présent.

    Mon problème c'est que j'aimerais "Rechercher / Remplacer" le texte surligné en jaune par du texte italique, et "Rechercher / Remplacer" le texte surligné en rouge par du texte gras, mais je ne sais pas ou on peut définir la couleur dans le code (exemple pour l'italique) :

    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
    Sub BackupItalic()
        Selection.Find.ClearFormatting
        Selection.Find.Highlight = True
        Selection.Find.Replacement.ClearFormatting
        Selection.Find.Replacement.Highlight = False
        Selection.Find.Replacement.Font.Italic = True
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End Sub
    En effet avec ce code tout le texte surligné (sans distinction de couleur) passe en italique, du coup je perds mon texte en gras.

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Août 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 24
    Points : 44
    Points
    44
    Par défaut
    Je te propose ce code, bien qu'il ne soit peut-être pas adapté pour un texte trop gros.
    Scruter les mots un par un, c'est pas forcément le top...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sub toto()
     
        Dim nb_mots As Long
        Dim mot
     
        nb_mots = ActiveDocument.Words.Count
        For mot = 1 To nb_mots
              Select Case (ActiveDocument.Words(mot).HighlightColorIndex)
                    Case wdYellow: ActiveDocument.Words(mot).Italic = -1
                    Case wdRed: ActiveDocument.Words(mot).Bold = -1
              End Select
        Next mot
     
    End Sub

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    En effet ça fonctionne bien mais mes textes sont assez "volumineux" donc du coup ce n'est pas vraiment adapté et le temps de recherche est beaucoup trop long

    Il n'y a pas moyen d'arriver au même résultat sans analyser mot par mot ?

    Merci pour ton aide

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    L'utilisation de la fonction recherche de Word est beaucoup plus rapide qu'une boucle sur les éléments du texte.

    Peut-être une voie à creuser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Selection.HomeKey unit:=wdStory
     
    With Selection.Find
        .Forward = True
        .Highlight = True
     
        Debug.Print .Execute
    End With
    Selection.Range.Font.Italic = True
    Ce code ne fonctionne qu'une seule fois, mais on peut faire une boucle sur le résultat de la recherche et tant que la recherche est vraie, on continue.
    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 !

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/04/2013, 13h20
  2. Couleur de surlignage
    Par JohnNC dans le forum 2D
    Réponses: 6
    Dernier message: 12/03/2009, 10h19
  3. Changer la couleur de surlignage d'un textbox
    Par atar64 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 29/02/2008, 11h35
  4. changement de couleur surlignage
    Par jcaspar dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/08/2007, 16h37
  5. [VBA-E toutes versions] Faire un surlignage dans une couleur définie
    Par guidav dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/11/2006, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo