Tri par couleur VBA

Bonjour à tous,

Dans une même cellule,j'ai du texte avec différentes couleurs. J'aimerais trier ce texte par couleur. Dans le fichier exemple,dans la case A2,j'ai 3 couleurs.J'aimerais que le texte en noir se copie dans la case B2,le texte en bleu se copie en C2....

Merci d'avance pour vos réponses.

26classeur1.zip (5.79 Ko)

Bonjour rugnum10

Tu trouveras ci-joint ton fichier avec un petit code pour faire ce que tu souhaites

Le code est :

Sub TriSelonCouleur()
  Dim Ind As Integer, TabVal() As String, MaCel As Range
  Dim vStart As Integer, vLen As Integer
  ' Définir la cellule contenant le texte
  Set MaCel = Range("A2")
  ' Eclater la cellule dans un tableau pour avoir les dimensions de chaque mots
  TabVal = Split(MaCel, Chr(10))
  ' Pour chaque ligne du tableau
  For Ind = 0 To UBound(TabVal)
    If Ind = 0 Then
      vStart = 1  ' Position de départ du mot
      vLen = Len(TabVal(Ind)) ' Longueur du mot
    Else
      vStart = vStart + Len(TabVal(Ind - 1)) + 1  ' Position de départ du mot
      vLen = Len(TabVal(Ind)) ' Longueur du mot
    End If
    ' Avec les caractères de la cellule
    With MaCel.Characters(Start:=vStart, Length:=vLen)
      ' Selon la couleur des caractères, classer dans la colonne correspondante
      Select Case .Font.ColorIndex
        Case xlAutomatic
          Range("B2").Value = TabVal(Ind)
          Range("B2").Font.ColorIndex = xlAutomatic
        Case 5
          Range("C2").Value = TabVal(Ind)
          Range("C2").Font.ColorIndex = 5
        Case 44
          Range("D2").Value = TabVal(Ind)
          Range("D2").Font.ColorIndex = 44
      End Select
    End With
  Next Ind
End Sub

A+

Merci beaucoup BrunoM45, c'est exactement ce qu'il me fallait

Rechercher des sujets similaires à "tri couleur vba"