Trier en fonction de la couleur de fond

Comment trier une plage en fonction de la couleur de fond des cellules ?

Avec excel 2007, cette fonction est intégrée : données filtrer. Dans la flèche qui apparait dans la cellule, trien en fonction de la couleur.

Pour les versions antérieures, voici un exemple qui permet de trier une plage de cellules (sur une seule colonne) selon la couleur :
1 - Crée la macro TriCoul (classique tri récursif)
2 - Crée la macro TriCoulRange (qui lancera TriCoul pour la plage sélectionnée)
3 - Dans une feuille de calcul, sélectionne une plage (sur une seule colonne) et exécute TriCoulRange
. Voila, tu peux modifier la macro pour trier plusieurs colonnes

sub TriCoul(R As Range)
 Dim Bas As Long, Haut As Long
 Dim Col As Integer
 Dim i As Long, j As Long
 Dim Milieu As Variant, Echange As Variant
 Col = R.Column
 Bas = R.Row
 Haut = R.Rows.Count + i - 1
 i = Bas
 j = Haut
 Milieu = Cells((Int(Bas + Haut) / 2), Col).Interior.Color
 Do
 While Cells(i, Col).Interior.Color < Milieu
  i = i + 1
 Wend
 While Milieu < Cells(j, Col).Interior.Color
  j = j - 1
 Wend
 If i <= j Then
  Echange = Cells(i, Col).Interior.Color
  Cells(i, Col).Interior.Color = Cells(j, Col).Interior.Color
  Cells(j, Col).Interior.Color = Echange
  Echange = Cells(i, Col).Value
  Cells(i, Col).Value = Cells(j, Col).Value
  Cells(j, Col).Value = Echange
  i = i + 1
  j = j - 1
 End If
 Loop Until i > j
 If Bas < j Then TriCoul Range(Cells(Bas, Col), Cells(j, Col))
 If i < Haut Then TriCoul Range(Cells(i, Col), Cells(Haut, Col))
 end sub
sub TriCoulRange()
 TriCoul Selection
 end sub

Auteur :

Mots clefs associés à cette page : , , , ,