TOP3 : Comment trier des données en temps réel à la saisie sur Excel ?
Dans ce tutoriel, nous allons explorer la puissante fonction TRIER() d'Excel, qui vous permettra de trier des valeurs en temps réel. Cette fonctionnalité peut révolutionner la manière dont vous organisez vos données dans Excel, en vous faisant gagner un temps précieux. Nous allons vous guider pas à pas à travers son utilisation, en fournissant des exemples concrets et des astuces utiles pour vous aider à devenir un expert de TRIER().
Téléchargement
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
Tutoriel Vidéo
1. Comment trier des données dans Excel
Trier des données dans Excel consiste à réorganiser une liste de valeurs dans un ordre spécifique, ce qui peut grandement faciliter la recherche et l'analyse de données.
La méthode la plus simple pour trier des données dans Excel est d'utiliser la fonctionnalité de tri du menu Données du Ruban.
1.1. Utilisation de la Fonction de Tri Standard
Pour illustrer ce tutoriel, nous disposons du tableau suivant, qui répertorie les montants des ventes réalisées par des commerciaux au cours de l'année 2023 :
Comme vous pouvez le constater, ces ventes sont affichées sans qu’une logique de tri n’ait été mise en place.
Maintenant, supposons que nous souhaitons faire apparaître les montants les plus importants au début de cette liste.
Pour cela, nous commençons par sélectionner l'une des cellules de la colonne "Montant des Ventes".
Ensuite, nous nous rendons dans le menu "Données" du ruban et nous cliquons sur le bouton "Trier de Z à A" (pour trier en ordre décroissant) :
Les données sont maintenant organisées en fonction des montants correspondants, de la plus grande valeur à la plus petite.
Depuis le même menu, nous retrouvons également l'option "Trier de A à Z" (pour trier en ordre croissant), laquelle va permettre d’inverser l’ordre d’apparition des données dans la base.
Nous retrouvons également le bouton nommé sobrement "Trier" qui permet quant à lui d’ouvrir une boîte de dialogue pour mettre en place des tris plus avancés.
1.2. Tri Personnalisé
Ce tri avancé permet de spécifier des règles de tri plus complexes.
Imaginons par exemple que nous voulions trier nos données en fonction des montants des ventes, mais qu’en cas d'égalité de montants la règle prévoit qu’ensuite le tri se fait en fonction de l’ordre alphabétique des noms des commerciaux.
Pour mettre en place ce tri personnalisé, nous procédons comme suit :
- Sélectionnons à nouveau notre plage de données.
- Puis, nous nous rendons dans l'onglet "Données" et choisissons "Trier".
- Dans la boîte de dialogue de tri, cliquons sur "Ajouter un niveau".
- Dans la première règle de tri, choisissons la colonne "Montant des Ventes" pour trier par montants.
- Ensuite, ajoutons un autre niveau de tri en cliquant à nouveau sur "Ajouter un niveau". Cette fois, choisissons la colonne "Commercial" pour trier par nom.
Enfin, nous cliquons sur "OK" pour appliquer le tri personnalisé.
Nos données sont triées en fonction des montants des ventes, et en cas d'égalité de montants, elles sont triées par ordre alphabétique des noms.
Sachez également que nous aurions pu atteindre le même résultat en appliquant successivement un tri croissant sur la colonne « Commercial », puis un tri décroissant sur la colonne « Montant des ventes ».
Comme vous pouvez vous en rendre compte, le tri tel que nous venons de le découvrir ici présente plusieurs avantages significatifs.
Tout d'abord, il est simple et rapide à mettre en place. Avec seulement quelques clics, nous pouvons en effet réorganiser de grandes quantités de données, ce qui vous fait gagner un temps précieux.
De plus, Excel propose des fonctionnalités de tri personnalisé, ce qui permet de spécifier des règles de tri complexes pour organiser des données selon plusieurs critères en même temps.
Cela offre une grande flexibilité pour répondre à des besoins de tri spécifiques.
Cependant, l'un des principaux inconvénients du tri standard est qu'il n'est pas dynamique. Cela signifie que si de nouvelles données sont ajoutées à la liste ou si les données existantes sont modifiées, nous devrons répéter l'opération de tri manuellement. Cela peut devenir fastidieux lorsque nous travaillons avec des données en constante évolution.
2. La fonction Excel TRIER()
Pour que le tri des données soit dynamique, nous pouvons nous orienter vers la fonction TRIER() d'Excel.
Il s’agit en effet d’une fonction puissante qui permet de trier des données rapidement et efficacement.
Elle est particulièrement utile pour réorganiser des listes de valeurs en fonction de critères spécifiques.
De plus, nous pouvons l’utiliser pour trier des données numériques, textuelles ou des références de cellules.
La fonction TRIER() s'utilise de la manière suivante :
=TRIER(tableau; [index_tri]; [ordre_tri]; [par_col])
Où :
- tableau est la plage de cellules que nous souhaitons trier. C'est le seul argument obligatoire de la fonction.
- [index_tri] est un argument facultatif qui permet de spécifier sur quelle colonne du tableau le tri doit être effectué. Par défaut, si cet argument est omis, Excel triera le tableau par ordre croissant sur la première colonne.
- [ordre_tri] est un autre argument facultatif qui vous permet de définir l'ordre de tri. Vous pouvez utiliser "1" pour un tri croissant (par défaut) ou "-1" pour un tri décroissant.
- [par_col] est également facultatif. Il s’agit d’indiquer si nous souhaitons effectuer le tri par colonne (dans ce cas, l’argument est égal à TRUE), ou par ligne (dans ce cas, il est égal à FALSE)
Ici, pour trier les données, nous allons donc nous placer sur le tableau vide situé à droite, et nous saisissons la formule dans la première cellule.
C’est en effet l’une des fonctions matricielles introduites sur les dernières versions d’Excel qui a donc pour particularité de se propager automatiquement sur les cellules du tableau.
La formule est alors la suivante :
=TRIER(A9:B21)
Comme vous pouvez le constater, cette formule permet donc de trier automatiquement la base en fonction du nom des commerciaux :
Si nous souhaitons que le tri s’effectue en fonction des montants de CA, il suffit d’utiliser le deuxième argument facultatif « index_tri » afin de spécifier que le tri s’effectue en fonction de la deuxième colonne du tableau :
=TRIER(A9:B21;2)
Encore une fois, seule la formule saisie dans la cellule D9 est à modifier.
Pour fini, pour mettre en place un tri inverser, nous utilisons le troisième argument « ordre_tri », qui est lui aussi facultatif auquel nous donnons la valeur de « -1 » :
=TRIER(A9:B21;2;-1)
Comme vous pouvez le constater, cette fonction TRIER() est très pratique, car elle permet de trier rapidement de grandes quantités de données, ce qui économise du temps par rapport au tri manuel.
En revanche, celle-ci nécessite l’utilisation d’une plage de cellule supplémentaire pour mettre en place le tri, il n’est pas possible de l’uitliser pour trier directement les cellules d’origine.
3. Tri en temps réel
Comme nous venons de le voir, bien que les méthodes précédentes pour trier des données dans Excel soient efficaces, elles ont une limitation : elles ne permettent pas de trier une plage de cellules en temps réel au fur et à mesure des mises à jour sans avoir à recourir à d'autres plages de cellules.
C'est là que VBA (Visual Basic for Applications) entre en jeu.
En effet, VBA, ou Visual Basic for Applications, est un langage de programmation intégré dans Excel (et d'autres applications de la suite Microsoft Office) qui permet de créer des macros, c'est-à-dire des séries d'instructions automatisées, pour effectuer des tâches spécifiques dans Excel.
Avec VBA, vous pouvez automatiser des actions complexes, créer des fonctions personnalisées et interagir avec les données de manière avancée.
Ici, nous allons mettre en place une macro très simple pour éviter de trop compliqué ce tutoriel, mais si vous souhaitez creuser davantage le sujet, vous trouverez ne nombreux autres tutoriels en cliquant ici.
La première chose à faire pour créer une macro en VBA, c’est de lancer l'éditeur VBA en utilisant le raccourci clavier [Alt]+[F11].
Cela déclenche alors l'ouverture de l'éditeur VBE, abréviation de Visual Basic Editor.
Il s’agit d’un environnement de développement intégré qui fait partie de Microsoft Office et qui est spécialement conçu pour la création, la modification et la gestion de macros VBA (Visual Basic for Applications).
Maintenant, nous allons souhaiter mettre en place une macro un peu particulière étant donné que nous souhaiterons que celle-ci puisse s’exécuter automatiquement lorsque nous saisissons du contenu sur la feuille de calcul.
Ce type de macro qui s’exécute automatiquement porte le nom de macro événementielle.
Dans notre cas, nous souhaitons que le tri soit effectué automatiquement chaque fois que des données sont modifiées.
Pour créer une macro événementielle, nous double-cliquons sur le nom de la feuille de calcul dans laquelle nous souhaitons activer le tri en temps réel afin d’ouvrir une fenêtre de code vide pour cette feuille.
Pour y insérer l’événement, nous choisissons « WorkSheet » dans la liste déroulante située en haut de cette fenêtre de code, puis « Change » dans la seconde liste déroulante.
Cela ajoute alors l’événement « Worksheet_Change » sur la feuille de code.
Il ne reste plus qu’à saisir les lignes de code de l’événement, en sachant que la variable « Target » que nous retrouvons ici passée en argument de l’événement va nous permettre de récupérer la ou les cellules qui ont été modifiées.
Pour commencer, nous allons souhaiter désactiver temporairement la gestion des événements dans Excel.
Cela permet d'éviter que la macro ne soit déclenchée à nouveau pendant son exécution, ce qui pourrait entraîner une boucle infinie.
Application.EnableEvents = False
En fin de macro nous pouvons d’ores et déjà réactiver la gestion des événements dans Excel, ce qui signifie que les futures modifications de la feuille de calcul déclencheront à nouveau la macro.
Application.EnableEvents = True
Puis, entre ces deux lignes, nous allons maintenant pour effectuer un test pour vérifier si la plage de cellules modifiée, représentée par la variable « Target », a au moins une cellule commune avec la plage [b9:b21] dans laquelle les montants des ventes sont saisis.
En d'autres termes, nous vérifions si la modification a eu lieu dans la plage des cellules de B9 à B21, et donc si nous souhaitons appliquer le tri des cellules :
If Not Intersect(Target, [b9:b21]) Is Nothing Then
Pour cela, nous utilisons la méthode Intersect qui permet de vérifier s'il y a une intersection (c'est-à-dire une cellule commune) entre deux plages de cellules.
Dans notre cas, la première plage est représentée par la variable « Target », qui contient la cellule modifiée, et la deuxième plage est [b9:b21], qui est la plage où les montants des ventes sont saisis.
Nous pourrions donc traduire cette ligne de code par « si l'intersection entre la cellule modifiée et la plage [b9:b21] n'est pas vide, c'est-à-dire qu'il y a une cellule commune, alors nous pouvons appliquer le tri de cellules.
Enfin, si la condition précédente est vraie alors nous pouvons appliquer le tri sur la plage de cellules de A8 à B21 en fonction de la colonne B (représentée par `[b8]`) par ordre décroissant (`xlDescending`) et sans tenir compte des en-têtes de colonne (`xlNo`).
[a8:b21].Sort Key1:=[b8], Order1:=xlDescending, Header:=xlNo
Et voilà, nous disposons maintenant d’une macro événementielle qui surveille les modifications apportées à la feuille de calcul active.
Si une modification est détectée dans la plage B9:B21, elle trie automatiquement les données de la plage A8:B21 en fonction de la colonne B (dans l'ordre décroissant) sans prendre en compte les en-têtes de colonne :