• Initiateur de la discussion Initiateur de la discussion ascarter
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

ascarter

Guest
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.
 

Pièces jointes

Re : Tri par couleur VBA

Salut ascarter.

Je te propose ce début de piste. A toi de voir si cela te convient.

Code:
Sub triCouleurs()

  Range("A2").Select
  For x = 1 To Len(ActiveCell.Value)
    If ActiveCell.Characters(Start:=x, Length:=1).Font.ColorIndex = xlAutomatic Then
       Range("B2").Value = Range("B2").Value + _
       ActiveCell.Characters(Start:=x, Length:=1).Caption
    End If
        
    If ActiveCell.Characters(Start:=x, Length:=1).Font.ColorIndex = 44 Then
       Range("D2").Value = Range("D2").Value + _
       ActiveCell.Characters(Start:=x, Length:=1).Caption
    End If
        
    If ActiveCell.Characters(Start:=x, Length:=1).Font.ColorIndex = 5 Then
       Range("C2").Value = Range("C2").Value + _
       ActiveCell.Characters(Start:=x, Length:=1).Caption
    End If

  Next x
    
  Range("B2").Value = Range("B2").Value & " "
  Range("C2").Value = Range("C2").Value & " "
  Range("D2").Value = Range("D2").Value & " "

End Sub

Bonne continuation.
 
Re : Tri par couleur VBA

Parfait,c'est ce que je voulais. Autre petite question, pourquoi dans le programme ci dessous,il ne prend en compte que les deux dernières conditions?
If Cells(3, 2) = "" Then
Range("E55:E85").Value = ""
Else
Range("E55").Value = Sheets("Données CR").Cells(3, 3).Value
End If
If Cells(3, 2) = FAUX Then
Range("E55:E85").Value = ""
End If

If Cells(4, 2) = "" Then
Range("E55:E85").Value = ""
Else
Range("E55").Value = Sheets("Données CR").Cells(4, 3).Value
End If
If Cells(4, 2) = FAUX Then
Range("E55:E85").Value = ""
End If

Merci d'avance
 
Re : Tri par couleur VBA

Bonjour ascarter, MatiChoux Bonjour J. BOISGONTIER_ Très tard mais j'avais préparé ceci...Sans connaitre le nombre final de couleurs. _ Cordialement _EDIT _Version (2) plus rapide (environ 10X)_Cordialement
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
470
Réponses
19
Affichages
867
Réponses
10
Affichages
411
Retour