changer le couleur de police après chaque espace

bouahid

XLDnaute Nouveau
bonjour

je besoin un macro que changer le couleur des police d'un texte après chaque espace

merci
 

Modeste

XLDnaute Barbatruc
Re : changer le couleur de police après chaque espace

Bonjour bouahid,

Avec aussi peu d'explications, on ne saurait être certain de proposer la bonne solution!?
S'il s'agit de texte, pourquoi ne pas utiliser, en Word, les possibilités du Rechercher-Remplacer?

Ci-dessous, la procédure à suivre. Dans le document joint, une illustration du résultat sur le texte de ton message et deux captures d'écran avec les références aux n° en rouge et gras.
...
  • Dans un document Word, activer la fonction Rechercher-Remplacer (Ctrl+h)
  • Cliquer sur le bouton "Plus", pour afficher des options supplémentaires (a)
  • Cocher la case "Utiliser les caractères génériques" (1)
  • Placer le curseur dans la zone "Rechercher" et cliquer sur le bouton "Spécial" (2)
  • Dans la liste, choisir "Début de mot"; un '<' s'affiche. Le faire suivre de '*' (3)
  • Placer le curseur dans la zone "Remplacer" et cliquer sur le bouton "Format" (4)
  • Choisir "Police…" et, dans la boîte de dialogue, choisir la couleur souhaitée. Vérifier que l'attribut s'inscrit bien sous la zone "Remplacer" (5)
  • Cliquer sur "Remplacer tout"
 

Pièces jointes

  • Première lettre en couleur (bouahid).docx
    105.3 KB · Affichages: 31

Modeste geedee

XLDnaute Barbatruc
Re : changer le couleur de police après chaque espace

Bonsour®
ce que j'ai compris ???
Option Explicit

VB:
Sub colortext()
Dim couleur As Integer, cell As Range, i As Integer
For Each cell In Selection
    If Len(cell) > 0 Then
        ' couleur = 3 + Int(Rnd() * 12) ' ---------------couleur initiale aleatoire (indexcolor de 3 à 13 (Rouge,vert,Bleu,jaune,magenta,cyan,jaune, etc...)
        couleur = 3 ' ---------------------couleur initiale toujours rouge
        With cell
           'couleur = 3 + Int(Rnd() * 50)  '----------------couleur=couleur aleatoire pour chaque mot
            For i = 1 To Len(cell)
                If Mid(cell, i, 1) <> " " Then
                    .Characters(i, 1).Font.ColorIndex = couleur
                Else
                    couleur = couleur + 1
                   ' couleur = 3 + Int(Rnd() * 50)  '----------------couleur=couleur aleatoire pour chaque mot
                End If
            Next
        End With
    End If
Next
End Sub

activer les lignes ligne en commentaire selon besoin
 

Discussions similaires

Réponses
17
Affichages
688
Réponses
16
Affichages
785

Statistiques des forums

Discussions
312 213
Messages
2 086 307
Membres
103 174
dernier inscrit
OBUTT