Tri par couleurs (Microsoft Excel)
Excel vous permet de trier les données de vos feuilles de calcul selon n’importe quel nombre d’attributs. Cependant, l’un des éléments sur lesquels vous ne pouvez pas trier intrinsèquement est la couleur des cellules, du moins pas sans la mise à jour vers Excel 2007 ou une version ultérieure. Pour certaines applications, cela peut être une fonctionnalité très pratique.
La macro suivante, SortByColor, triera un tableau en fonction de la couleur avec laquelle une cellule est formatée.
Sub SortByColor() On Error GoTo SortByColor_Err Dim sRangeAddress As String Dim sStartCell As String Dim sEndCell As String Dim rngSort As Range Dim rng As Range Application.ScreenUpdating = False sStartCell = InputBox("Enter the cell address of the " & _ "top cell in the range to be sorted by color" & _ Chr(13) & "i.e. 'A1'", "Enter Cell Address") If sStartCell > "" Then sEndCell = Range(sStartCell).End(xlDown).Address Range(sStartCell).EntireColumn.Insert Set rngSort = Range(sStartCell, sEndCell) For Each rng In rngSort rng.Value = rng.Offset(0, 1).Interior.ColorIndex Next Range(sStartCell).Sort Key1:=Range(sStartCell), _ Order1:=xlAscending, Header:=xlNo, _ Orientation:=xlTopToBottom Range(sStartCell).EntireColumn.Delete End If SortByColor_Exit: Application.ScreenUpdating = True Set rngSort = Nothing Exit Sub SortByColor_Err: MsgBox Err.Number & ": " & Err.Description, _ vbOKOnly, "SortByColor" Resume SortByColor_Exit End Sub
La macro fonctionne en vous demandant d’abord la cellule de début de la plage que vous souhaitez trier. Cela devrait être la cellule la plus haute de la plage. La macro insère ensuite une colonne (juste temporairement) dans laquelle les valeurs de couleur peuvent être stockées. Il parcourt ensuite chaque cellule de la plage définie par la cellule de départ que vous avez spécifiée.
SortByColor suppose que votre table de données n’a pas de ligne d’en-tête. Si tel est le cas, vous devez modifier la commande de tri réelle. Remplacez simplement Header: = xlNo par Header: = xlYes.
Vous devez noter que la macro SortByColor trie uniquement les cellules en fonction de la couleur explicite appliquée à la cellule, elle ne trie pas si la couleur de la cellule est le résultat d’une mise en forme conditionnelle.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (3122) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Sorting_by_Colors [Tri par couleurs]
.