Changer la couleur de tous les éléments d'une certaine couleur
Résolu
D-velop
Messages postés
2
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour
Étant débutant en VBA et n'ayant pas trouvé de script satisfaisant sur le net pour réaliser ce que je souhaite, je soumet ici ce que je désire obtenir.
je souhaiterais, pour Word (2010), réaliser une macro VBA capable
- de repérer dans un document Word tout les éléments d'une certaine couleur, définie par un code RGB (par exemple, un bleu pur RGB (0,0,255)), y compris le texte dans les zones de texte et y compris aussi les formes insérées (trait et/ou remplissage !)
- de changer la couleur de tous ces éléments pour une couleur définie par un code RGB (par exemple, un magenta RGB (255,0,255) )
je ne sais si cela est possible, je me pose à ce titre la question de la possibilité de changer la couleur:
- d'un mot (de la couleur choisie pour être remplacée), même s'il est isolé dans un paragraphe
- d'une lettre (de la couleur choisie pour être remplacée), même si elle est au sein d'un mot (je me doute que là, ça commence à devenir vraiment tordu... )
Merci d'avance à tous ceux qui prendraient la peine de me répondre, même en ne m'apportant qu'une aide partielle !
Étant débutant en VBA et n'ayant pas trouvé de script satisfaisant sur le net pour réaliser ce que je souhaite, je soumet ici ce que je désire obtenir.
je souhaiterais, pour Word (2010), réaliser une macro VBA capable
- de repérer dans un document Word tout les éléments d'une certaine couleur, définie par un code RGB (par exemple, un bleu pur RGB (0,0,255)), y compris le texte dans les zones de texte et y compris aussi les formes insérées (trait et/ou remplissage !)
- de changer la couleur de tous ces éléments pour une couleur définie par un code RGB (par exemple, un magenta RGB (255,0,255) )
je ne sais si cela est possible, je me pose à ce titre la question de la possibilité de changer la couleur:
- d'un mot (de la couleur choisie pour être remplacée), même s'il est isolé dans un paragraphe
- d'une lettre (de la couleur choisie pour être remplacée), même si elle est au sein d'un mot (je me doute que là, ça commence à devenir vraiment tordu... )
Merci d'avance à tous ceux qui prendraient la peine de me répondre, même en ne m'apportant qu'une aide partielle !
A voir également:
- Changer la couleur de tous les éléments d'une certaine couleur
- Changer dns - Guide
- Changer la couleur de la barre des taches - Guide
- Excel cellule couleur si condition texte - Guide
- Somme si couleur - Guide
- Comment changer la couleur de whatsapp - Accueil - Messagerie instantanée
3 réponses
Bonjour,
Essaie ceci:
Essaie ceci:
Sub Surligne() Dim wd For Each wd In ActiveDocument.Words wd.Select If Selection.Font.ColorIndex = wdGreen Then MsgBox "Ok " & Selection.Range.Text Selection.Font.ColorIndex = wdRed Next wd End Sub
Excellent, Voilà 90% de l'objectif atteint !
Merci pour cette réponse rapide et efficace qui m'apporte une aide considérable !
Le script fonctionne pour le texte hors zone de texte (en ajoutant End If à la fin de la boucle conditionnelle), cela m'encourage à tenter de le compléter pour qu'il s'applique aussi au texte présent au sein de zones de texte, peut-être est-ce simple à réaliser mais je ne sais s'il faut utiliser une procédure similaire en remplaçant ActivDocument.Words par ActivDocument.Shapes. ou ActivDocument.Shapes.Text ou un truc du genre.
Je vais essayer de trouver mais dans tous les cas merci déjà de tout coeur pour cette aide !
Merci pour cette réponse rapide et efficace qui m'apporte une aide considérable !
Le script fonctionne pour le texte hors zone de texte (en ajoutant End If à la fin de la boucle conditionnelle), cela m'encourage à tenter de le compléter pour qu'il s'applique aussi au texte présent au sein de zones de texte, peut-être est-ce simple à réaliser mais je ne sais s'il faut utiliser une procédure similaire en remplaçant ActivDocument.Words par ActivDocument.Shapes. ou ActivDocument.Shapes.Text ou un truc du genre.
Je vais essayer de trouver mais dans tous les cas merci déjà de tout coeur pour cette aide !
Pour les shapes:
les textes:
Sub Surshape() Dim wd For Each wd In ActiveDocument.Shapes wd.Select If Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 0, 255) Then Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 255) End If Next wd End Sub
les textes:
Sub Surligne() Dim wd For Each wd In ActiveDocument.Words wd.Select If Selection.Font.Color = RGB(0, 0, 255) Then Selection.Font.Color = RGB(255, 0, 255) End If Next wd End Sub
- d'une lettre (de la couleur choisie pour être remplacée), même si elle est au sein d'un mot (je me doute que là, ça commence à devenir vraiment tordu... )
On peut le faire aussi:
et voilà, après une petite recherche sur Google (Google est notre ami)
@+ Le Pivert
On peut le faire aussi:
Sub Surlettre() With ActiveDocument.Content.Find .ClearFormatting .Font.Color = RGB(0, 0, 255) With .Replacement .ClearFormatting .Font.Color = RGB(255, 0, 255) End With .Execute FindText:="", ReplaceWith:="", Format:=True, _ Replace:=wdReplaceAll End With End Sub
et voilà, après une petite recherche sur Google (Google est notre ami)
@+ Le Pivert