Table des matières
Mise en œuvre de Macro VBA est la méthode la plus efficace, la plus rapide et la plus sûre pour exécuter n'importe quelle opération dans Excel. Dans cet article, nous allons vous montrer comment trier le tableau dans Excel avec VBA .
Télécharger le cahier d'exercices
Vous pouvez télécharger le cahier d'exercices Excel gratuit à partir d'ici.
Trier un tableau avec VBA.xlsm
Ce qu'il faut savoir avant de mettre en œuvre le VBA pour trier un tableau dans Excel
Il y a certains paramètres que vous devez utiliser fréquemment lorsque vous travaillez avec le programme Trier méthode de VBA Nous allons donc discuter de certains de ces paramètres afin de vous familiariser avec l'écriture du code.
Paramètre | Obligatoire/ Facultatif | Type de données | Description |
---|---|---|---|
Clé | En option | Variante | Spécifie la plage ou la colonne dont les valeurs doivent être triées. |
Commandez | En option | XlSortOrder | Spécifie l'ordre dans lequel le tri sera effectué.
|
En-tête | En option | XlYesNoGuess | Spécifie si la première ligne contient des en-têtes ou non.
|
4 méthodes d'implémentation de VBA pour trier un tableau dans Excel
Cette section vous montrera comment trier les tableaux Excel en considérant valeur, couleurs, icônes et plusieurs colonnes avec VBA code.
1. Embed VBA pour trier un tableau par valeur dans Excel
Dans l'exemple suivant, nous allons trier ce tableau par les valeurs présents dans le Mark dans l'ordre décroissant.
Des pas :
- Appuyez sur Alt + F11 sur votre clavier ou allez dans l'onglet Développeur -> ; Visual Basic pour ouvrir Éditeur Visual Basic .
- Dans la fenêtre pop-up du code, dans la barre de menu, cliquez sur Insertion -> ; Module .
- Copiez le code suivant et collez-le dans la fenêtre de code.
Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub
Votre code est maintenant prêt à être exécuté.
Ici,
- SortTBL → Spécifié le nom de la table.
- SortTBL [Marques] -> ; Spécifié le nom de la colonne de la table à trier.
- Clé1:=iColonne → Spécifiez la plage de colonnes pour que le code sache quelle colonne du tableau trier.
- Ordre1:=xlDescending → Spécifier la commande comme xlDescendant pour trier la colonne dans l'ordre décroissant. Si vous voulez trier la colonne dans l'ordre croissant, écrivez xlAscending à la place.
- En-tête:= xlOui → Comme la colonne de ce tableau a un en-tête, nous l'avons spécifié avec la balise xlOui option.
- Appuyez sur F5 sur votre clavier ou dans la barre de menu, sélectionnez Run -> ; Run Sub/UserForm Vous pouvez également cliquer sur le bouton petite icône Play dans la barre de sous-menu pour exécuter la macro.
Vous verrez que la colonne dans votre tableau est maintenant triés par ordre décroissant .
Lire la suite : Comment trier des données par valeur dans Excel (5 méthodes simples)
2. insérer une macro VBA pour trier un tableau sur plusieurs colonnes
Vous pouvez également trier un tableau pour plusieurs colonnes dans Excel avec VBA macro.
A partir du tableau ci-dessus, nous allons trier les colonnes Nom et Département dans l'ordre croissant.
Des pas :
- De la même manière que précédemment, ouvrez Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Dans la fenêtre de code, copiez le code suivant et collez-le.
Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub
Votre code est maintenant prêt à être exécuté.
Ici,
- Valeur de la table → Spécifié le nom de la table.
- TableValue [Nom] -> ; Spécifié le nom de la première colonne de la table à trier.
- TableValue [Département] -> ; Spécifié le nom de la deuxième colonne de la table à trier.
- Clé1:=iColonne1 → Spécifié la plage de colonnes pour que le code sache que la première colonne du tableau doit être triée.
- Clé1:=iColonne2 → Spécifié la plage de colonnes pour que le code sache que la deuxième colonne du tableau doit être triée.
- Ordre1:=xlAscending → Spécifier la commande comme xlAscending pour trier la colonne dans l'ordre décroissant. Si vous voulez trier la colonne dans l'ordre décroissant alors écrivez xlDescendant à la place.
- En-tête:= xlOui → Comme les colonnes de ce tableau ont des en-têtes, nous l'avons spécifié avec la balise xlOui option.
- Exécuter ce code et vous obtiendrez les deux colonnes du tableau triées dans l'ordre croissant.
Lire la suite : Comment trier automatiquement plusieurs colonnes dans Excel (3 façons)
Lectures similaires
- Comment trier une liste unique dans Excel (10 méthodes utiles)
- Trier un tableau avec Excel VBA (par ordre croissant et décroissant)
- Comment trier et filtrer des données dans Excel (Guide complet)
- Tri automatique dans Excel lorsque les données changent (9 exemples)
- Tri aléatoire dans Excel (Formules + VBA)
3. implémenter une macro pour trier un tableau par couleur de cellule dans Excel
Vous pouvez également trier un tableau en fonction de la couleur de la cellule qu'il contient.
En prenant pour exemple le tableau ci-dessus, nous allons vous montrer comment le trier en fonction des couleurs qu'il contient.
Des pas :
- Comme nous l'avons montré précédemment, l'ouverture Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Dans la fenêtre de code, copiez le code suivant et collez-le.
Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor) .SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub
Votre code est maintenant prêt à être exécuté.
Ici, le RGB codes que nous avons fournis, vous pouvez le trouver ou tout autre RGB le code que vous voulez en suivant le gif donné ci-dessous.
- Il suffit de cliquer sur le cellule de couleur .
- Dans le Accueil cliquez sur l'onglet flèche à côté de Fill Color puis sélectionnez Plus de couleurs Vous verrez le RGB codes dans le Personnalisé de l'onglet apparu Couleurs dans la fenêtre pop-up.
- Exécuter ce code et votre tableau sera triés sur la base des couleurs .
Lire la suite : Comment trier par couleur dans Excel (4 critères)
4. appliquer VBA pour trier un tableau Excel par icône
Supposons que le tableau de l'ensemble de données comporte des icônes pour une meilleure lisibilité. Vous pouvez trier le tableau de l'ensemble de données. tableau basé sur les icônes dans Excel avec VBA macro.
Regardez l'ensemble de données ci-dessus. Ici, le tableau comporte des icônes à côté des valeurs numériques dans la zone de texte. Marks afin que nous puissions comprendre quel élève a de bons, mauvais ou moyens résultats.
Notez que, si vous ne savez pas comment insérer une icône à l'intérieur d'une cellule, vous pouvez simplement le faire avec la fonction Mise en forme conditionnelle dans Excel.
- Sélectionnez l'ensemble de la plage ou de la colonne.
- Aller à Mise en forme conditionnelle -> ; Jeux d'icônes Puis choisissez les jeux d'icônes que vous voulez dans l'option.
Étapes à suivre pour trier un tableau en fonction des icônes sont indiqués ci-dessous.
Des pas :
- Ouvrir Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Dans la fenêtre de code, copiez le code suivant et collez-le.
Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub
Votre code est maintenant prêt à être exécuté.
Ici,
- xl5Flèches -Nous avons choisi le jeu de 5 flèches de l'option dans le Mise en forme conditionnelle .
- Article (1) -> ; Spécifié le premièrement type d'icône de flèche.
- Article (2) -> ; Spécifié le deuxième type d'icône de flèche.
- Article (3) -> ; Spécifié le troisième type d'icône de flèche.
- Article (4) -> ; Spécifié le quatrième type d'icône de flèche.
- Article (5) -> ; Spécifié le cinquième type d'icône de flèche.
- Exécuter ce code et le tableau sera triés sur la base des icônes .
Lire la suite : Comment trier automatiquement un tableau dans Excel (5 méthodes)
Conclusion
Cet article vous a montré comment trier le tableau dans Excel VBA J'espère que cet article vous a été très utile. N'hésitez pas à me demander si vous avez des questions sur le sujet.