Pat se demande s’il existe un moyen de trier automatiquement chaque fois qu’elle ajoute de nouvelles données à une feuille de calcul. Pat pense que ce serait formidable, par exemple, que lorsqu’elle ajoute un nouveau nom à une liste de noms, les noms soient automatiquement triés pour être toujours dans l’ordre.

La seule façon de procéder consiste à utiliser une macro qui est déclenchée chaque fois que quelque chose de nouveau est entré dans la feuille de calcul. Vous pouvez, par exemple, ajouter une macro au code d’une feuille de calcul qui est déclenchée lorsque quelque chose dans la feuille de calcul change. (Vous pouvez afficher la fenêtre de code en cliquant avec le bouton droit de la souris sur l’onglet de la feuille de calcul et en choisissant Afficher le code dans le menu contextuel qui en résulte.) Voici un exemple d’une telle macro simple:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next     Range("A1").Sort Key1:=Range("A2"), _       Order1:=xlAscending, Header:=xlYes, _       OrderCustom:=1, MatchCase:=False, _       Orientation:=xlTopToBottom End Sub

La macro suppose que vous souhaitez trier les données de la colonne A et qu’il existe un en-tête dans la cellule A1. Si les noms sont dans une colonne différente, remplacez simplement la référence de la cellule A2 par une colonne différente, telle que B2, C2, etc.

Bien sûr, le tri à chaque fois qu’une modification est apportée peut être gênant.

Vous souhaiterez peut-être limiter le moment du tri afin qu’il ne se produise que lorsque des modifications sont apportées à une partie spécifique de vos données. La version suivante de la macro trie les données uniquement lorsqu’une modification est apportée à la colonne A.

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next     If Not Intersect(Target, Range("A:A")) Is Nothing Then         Range("A1").Sort Key1:=Range("A2"), _           Order1:=xlAscending, Header:=xlYes, _           OrderCustom:=1, MatchCase:=False, _           Orientation:=xlTopToBottom     End If End Sub

L’utilisation d’une macro pour trier automatiquement vos données présente certains inconvénients. Premièrement, puisque vous utilisez une macro pour trier, l’opération est essentiellement «finale». En d’autres termes, après le tri, vous ne pouvez pas utiliser Ctrl + Z pour annuler l’opération.

Un deuxième inconvénient est que la saisie de données peut devenir un peu déconcertante.

Par exemple, si vous utilisez l’une des macros ci-dessus et que vous commencez à mettre des noms dans la feuille de calcul, ils seront triés dès que vous avez terminé ce qui se trouve dans la colonne A. Si vos données utilisent cinq colonnes et que vous commencez votre entrée à la ligne 15 , dès que vous avez terminé d’entrer le nom dans la colonne A (et avant de saisir les données dans les colonnes B à E), vos données sont triées dans le bon ordre. Cela signifie que vous devrez trouver où il a été déplacé dans le tri, sélectionnez la cellule appropriée dans la colonne B, puis entrez le reste des données pour l’enregistrement. Bien sûr, la solution consiste à ajouter vos données dans un ordre non naturel – assurez-vous simplement que le nom de la colonne A est la toute dernière chose que vous saisissez pour l’enregistrement.

_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 (9005) 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-Automatically_Sorting_as_You_Enter_Information [Tri automatique lorsque vous entrez des informations].