Gamme de tri VBA

Plage de tri Excel VBA

Le tri d'une plage dans VBA se fait par la méthode range.sort, c'est une propriété de la méthode range avec laquelle un utilisateur peut trier une plage dans l'ordre, les arguments de cette fonction sont Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, tous les arguments de cette fonction sont facultatifs.

Dans le cadre de l'organisation ou de la structuration des données, il est important de trier les données et de les organiser. Une chose similaire est également disponible avec VBA, donc la question courante sur les nouveaux apprenants de VBA est de savoir comment nous pouvons utiliser cette option de tri dans le cadre de l'automatisation VBA et cet article vous guide à travers la gamme VBA Sort en détail.

Avec Excel, nous connaissons tous l'option de tri disponible sous l'onglet DONNÉES.

Option de tri dans VBA

Pour utiliser l'option de tri, nous devons d'abord décider quelle est notre plage de données et mentionner la même plage de données en utilisant l'objet RANGE dans VBA, ensuite nous pouvons seulement accéder à l'option «Trier» dans VBA. Par exemple, supposons que ma plage de données va de A1 à D10, nous pouvons alors fournir la plage de données comme suit.

Code:

 Sub Sort_Range_Example () Range ("A1: D10") End Sub 

Maintenant, mettez un point et sélectionnez la méthode «TRIER».

Code:

 Sub Sort_Range_Example () Range ("A1: D10"). Sort End Sub 

Vous trouverez ci-dessous la syntaxe de la méthode SORT de range, bien que la syntaxe ait des arguments différents, nous n'avons pas besoin de tous pour notre codage VBA, nous n'avons donc besoin que de quelques éléments.

[Key1]: Dans la plage de données que nous trions, nous devons spécifier la colonne à trier. Par exemple, dans la plage de données A1: D10, si nous voulons trier les données en fonction de la colonne B, [Key1] sera Range («B1») .

[Order1]: La colonne mentionnée dans l' argument [Key1] doit être triée dans quel ordre. Nous pouvons choisir deux options ici «xlAscending» ou «xlDescending».

En-tête: La plage de données mentionnée a des en-têtes ou non, si oui, nous pouvons fournir «xlYes» ou bien nous pouvons fournir «xlNo».

Exemple de plage de tri dans VBA

Prenons l'exemple de la gamme de tri Excel VBA pour mieux comprendre cela.

Vous pouvez télécharger ce modèle Excel de plage de tri VBA ici - Modèle Excel de plage de tri VBA

Par exemple, regardez la structure de données ci-dessous.

Nous avons des données de A1 à E17, nous allons donc d'abord trier les données en fonction de «par pays». Suivez les étapes ci-dessous pour écrire le code pour trier les données.

Étape 1: Démarrez la procédure de macro Excel.

Code:

 Sub Sort_Range_Example () End Sub 

Étape 2: mentionnez d'abord la plage de données à l'aide de l' objet RANGE .

Code:

 Sub Sort_Range_Example () Range ("A1: E17") End Sub 

Étape 3: Choisissez maintenant la méthode « Trier » de l'objet Range.

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort End Sub 

Étape 4: Puisque nous trions les données en fonction du «Pays», notre colonne d'argument Clé 1 sera Range («B1»).

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), End Sub 

Étape 5: Une fois que la colonne requise est mentionnée, nous devons mentionner dans quel ordre nous devons trier les données et «Order1» sera l'ordre «xlAscending» .

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, End Sub 

Étape 6: Nos données ont des en-têtes, donc l'en-tête sera «xlOui».

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Header: = xlYes End Sub 

Nous avons mentionné tous les éléments nécessaires au tri des données. Exécutez le code en appuyant sur la fonction et la touche F5 et voyez le résultat.

Production:

Les données ont été triées en fonction des noms de pays dans l'ordre de A à Z.

Supposons maintenant que nous ayons besoin de trier les données en fonction du pays, nous devons également trier les « ventes brutes » du plus élevé au plus bas. Dans de tels cas, nous devons également utiliser les arguments Key2 et Order2.

Après avoir mentionné Key1 & Order1, choisissons Key2.

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Key2: = End Sub 

Puisque nous trions les données en fonction de la colonne « Ventes brutes », le nom de la colonne Key2 sera Range («D1»).

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Key2: = Range ("D1"), End Sub 

Once the Key2 is specified we need to decide on the sorting patter of whether it is ascending order or descending order in Order2 argument since we are sorting the sales value from largest to smallest we can choose “xlDescending” order.

Code:

 Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending, Key2:=Range("D1"), Order2:=xlDescending, Header:=xlYes End Sub 

After that mention the Header argument as “xlYes”. Now run the code and see what happens.

Output:

Previously it has sorted based only on “Country-wise” but this time it has sorted based on “Country-wise” first and then also on “Gross Sales” from highest to lowest.

Like this, we can use the “Sort” method in VBA to organize the data.

Things to Remember about Excel VBA Sort Range

  • The sort is a method available in VBA and to access this method we need to specify what the range of cells we are going to sort.
  • If the data range includes headers then we need to choose the header option as “xlYes”, if not we can choose “xlNo”.