Colorié une partie du texte dans une cellule

Bonjour,

Je bosse sur une base de données sur excel dans laquelle je mets du html pour agrémenté mes descriptions. Le problème d'intégrer directement le HTML dans la base de données c'est que la lisibilité de mes descriptions est diminuée.
Je souhaite donc que mon code html soit directement colorié dans une couleur très claire histoire de ne pas géner la lecture de ma description.

Si vous avez une formule excel ou une macro en VBA permettant de colorié entre les symboles "<" et ">" (symboles compris).

Merci d'avance,
Guillaume
Configuration: Windows XP
Firefox 3.0

1 réponse

  1. Salut :

    En A1 :
    <TITLE>Mon premier essai</TITRE>

    Macro :
    Sub ColoreHTML()
        
        Range("A1").Select
        Pos = 1
        Debut = 1
        Do
            Pos = InStr(Debut, ActiveCell.Value, "<")
            Pos2 = InStr(Debut, ActiveCell.Value, ">")
            ActiveCell.Characters(Pos, Pos2 - Pos + 1).Font.ColorIndex = 15
            Debut = Pos2 + 1
        Loop Until Pos = 0
            
    End Sub
    0
    1. J'ai tappé ça (en gras ce que j'ai modifié):

      Sub ColoreHTML()

      Range("P17:P268").Select
      Pos = 1
      Debut = 1
      Do
      Pos = InStr(Debut, ActiveCell.Value, "<")
      Pos2 = InStr(Debut, ActiveCell.Value, ">")
      ActiveCell.Characters(Pos, Pos2 - Pos + 1).Font.ColorIndex = 15
      Debut = Pos2 + 1
      Loop Until Pos = 0

      End Sub

      Ça m'a bien sélectionné toutes les cellules entre P17 et P268 mais ça ne s'est appliqué que dans la première cellule. De plus la première lettre (qui était en majuscule) à également coloriée.

      Guillaume
      0
    2. @akarixDeuxième essai :
      Sub ColoreHTML()
          Range("P17:P268").Select
          For Each Cellule In Selection
              Pos = 1
              Debut = 1
              Do
                  Pos = InStr(Debut, Cellule.Value, "<")
                  Pos2 = InStr(Debut, Cellule.Value, ">")
                  Cellule.Characters(Pos, Pos2 - Pos + 1).Font.ColorIndex = 15
                  Debut = Pos2 + 1
                  Pos = InStr(Debut, Cellule.Value, "<")
              Loop Until Pos = 0
          Next
      End Sub
      
      0
    3. @onesdfMerci beaucoup c'est niquel
      0