Dans cet article, nous avons fourni des détails sur la façon de trier les feuilles de calcul dans le classeur dans l’ordre croissant ou décroissant, en fonction du nom de la feuille de calcul.

Dans le classeur joint, il y a deux modules: – Module1 contient la macro «SortWorksheets» qui est affectée au bouton «Soumettre» sur la feuille «Macro».

Cette macro trie toutes les feuilles de calcul sauf la première feuille de calcul qui est la feuille principale nommée «Macro».

Lorsque l’utilisateur clique sur le bouton «Soumettre», toutes les feuilles après la feuille «Macro» seront triées par ordre croissant ou décroissant selon le choix de l’utilisateur dans la liste déroulante.

ArrowSortingOrder

Module2 contient deux macros «AscendingSortOfWorksheets» et «DecendingSortOfWorksheets». Lors de l’exécution de la macro «AscendingSortOfWorksheets», il triera toutes les feuilles de calcul présentes dans le classeur dans l’ordre croissant. Lors de l’exécution de la macro «DecendingSortOfWorksheets», il triera toutes les feuilles de calcul présentes dans le classeur dans l’ordre décroissant.

Explication logique

L’algorithme de tri à bulles est utilisé pour trier les feuilles de calcul dans le classeur.

L’algorithme de tri à bulles compare chaque élément du tableau avec un autre élément du tableau et les échange selon qu’il faut trier par ordre croissant ou décroissant. À chaque étape, la valeur la plus petite ou la plus grande apparaîtra en haut du tableau. L’algorithme se répète jusqu’à ce que tous les éléments soient triés.

Dans cet article, notre objectif est de trier les feuilles de calcul du classeur par leur nom. Le classeur que nous utilisons se compose de différentes feuilles de calcul portant des noms tels que Tableau de bord financier, Ressources humaines et Tableau de bord des ventes.

ArrowRawData

Pour atteindre cet objectif, nous avons utilisé l’algorithme de tri à bulles pour trier les feuilles de calcul.

Explication du code

SortWorksheets Macro

Cette macro s’exécutera lorsque l’utilisateur cliquera sur le bouton d’envoi. Cette macro triera toutes les feuilles de calcul du classeur par leurs noms à l’exception de la première feuille de calcul du classeur. Selon la valeur sélectionnée par l’utilisateur dans la zone de liste déroulante, il triera les feuilles de calcul dans l’ordre croissant ou décroissant.

Pour ajouter une zone de liste déroulante, suivez les étapes ci-dessous: -. Allez dans l’onglet Développeur> Cliquez sur Insérer> Cliquez sur l’icône de la zone de liste déroulante sous le contrôle du formulaire

ArrowInsertingCombobox

  1. Cliquez avec le bouton droit sur la zone de liste déroulante et cliquez sur le contrôle du format.

ArrowFormattingControl

  1. Allez dans l’onglet de contrôle, attribuez l’élément et liez la zone de liste déroulante avec la cellule XFC1.

ArrowCellLink

ComboBoxValue = Range (« XFC1 »). La zone de liste déroulante Valeur de la feuille de calcul « Macro » est liée à la cellule XFC1. Ainsi, pour obtenir la valeur de la cellule XFC1, la variable ComboBoxValue est utilisée.

Pour i = 2 To SCount – 1 FOR boucle commence par la variable i, valeur commençant à 2 car nous voulons exclure la première feuille de calcul du classeur du tri.

Si ComboBoxValue = 1, la condition IF est utilisée pour vérifier s’il faut trier par ordre croissant ou décroissant. Si la valeur de ComboBoxValue est 1, puis triez par ordre croissant sinon par ordre décroissant.

Feuilles de travail triées par ordre croissant

ArrowAscendingOrder

Feuilles de travail triées par ordre décroissant

ArrowDescendingOrder

AscendingSortOfWorksheets et DecendingSortOfWorksheets

Les macros AscendingSortOfWorksheets et DecendingSortOfWorksheets peuvent être exécutées en appuyant sur la touche de raccourci Alt + F8 ou Allez dans l’onglet Développeur> Cliquez sur Macro> sélectionnez la macro et cliquez sur Exécuter. Ils trieront toutes les feuilles de calcul présentes dans le classeur. Ces macros peuvent également être exécutées sur d’autres classeurs.

Feuilles de travail triées après l’exécution de la macro AscendingSortOfWorksheets

ArrowAscendingCompleteSort

Feuilles de travail triées par ordre croissant DecendingSortOfWorksheets macro

ArrowDescendingCompleteSort

Veuillez suivre ci-dessous pour le code

Sub AscendingSortOfWorksheets()

'Sort worksheets in a workbook in ascending order

Dim SCount, i, j As Integer

'For disabling screen updates

Application.ScreenUpdating = False

'Getting total no. of worsheets in workbook

SCount = Worksheets.Count

'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure

If SCount = 1 Then Exit Sub

'Using Bubble sort as sorting algorithm

'Looping through all worksheets

For i = 1 To SCount - 1

'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position

For j = i + 1 To SCount

If Worksheets(j).Name < Worksheets(i).Name Then

Worksheets(j).Move Before:=Worksheets(i)

End If

Next j

Next i

End Sub

Sub DecendingSortOfWorksheets()

'Sort worksheets in a workbook in descending order

Dim SCount, i, j As Integer

'For disabling screen updates

Application.ScreenUpdating = False

'Getting total no. of worsheets in workbook

SCount = Worksheets.Count

'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure

If SCount = 1 Then Exit Sub

'Using Bubble sort as sorting algorithm

'Looping through all worksheets

For i = 1 To SCount - 1

'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position

For j = i + 1 To SCount

If Worksheets(j).Name > Worksheets(i).Name Then

Worksheets(j).Move Before:=Worksheets(i)

End If

Next j

Next i

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]