Tri des feuilles par nom avec Excel VBA

Il est souvent nécessaire de trier les feuilles alphabétiquement par leur nom. Vous pourriez penser qu’Excel a une fonction intégrée qui est tout à fait pertinente, mais malheureusement, elle manque. Si vous ne souhaitez plus trier manuellement les feuilles, la macro ci-dessous le fera pour vous.

La macro a l’air plus compliquée qu’elle ne l’est réellement. Ses actions sont simples. Il effectue une itération pour les feuilles du classeur, en faisant correspondre la feuille actuelle à la précédente. Si, en raison de son nom, la feuille précédente doit apparaître derrière la feuille actuelle, la macro l’y transférera. Lorsque toutes les itérations sont terminées, l’utilisateur reçoit un fichier trié par ordre alphabétique!

Sub TriFeuilleParNom ()
'Étape 1: Déclaration des variables
Dim IndexFeuilleActuel  As Integer
Dim IndexFeuillePrecedente As Integer
'Étape 2: Démarrez le compteur et démarrez la boucle
For IndexFeuilleActuel  = 1 To Sheets.Count
For IndexFeuillePrecedente = 1 To IndexFeuilActuel - 1
'Étape 3: Comparaison de la feuille de calcul actuelle et précédente
If UCase(Sheets(IndexFeuillePrecedente).Name) > _
UCase(Sheets(IndexFeuilleActuel).Name) Then
'Étape 4: Déplacement de la feuille actuelle avant la précédente
Sheets(IndexFeuilleActuel).Move _
Before:=Sheets(IndexFeuillePrecedente)
End If
'Étape 5: La boucle commence l'itération suivante
Next IndexFeuillePrecedente
Next IndexFeuilleActuel
End Sub
Commentaires
Il convient de rappeler que cette technique est destinée au tri de texte. En cas d’utilisation de feuilles dans lesquelles des noms ont été utilisés, les résultats peuvent être différents de ceux attendus. Ainsi, la feuille se trouve devant la feuille Feuil2, car le premier texte apparaît avant le 2. Excel ne trie pas en fonction des nombres, mais indique simplement que cela provoquerait le placement de 2 avant 10.
1. Dans la première étape, deux variables numériques sont décodées. La variable IndexFeuilleActuel stocke le numéro de feuille de l’itération actuelle et la variable IndexFeuillePrecedente, le numéro de feuille de l’itération précédente.
2. Dans la deuxième étape, la macro commence à itérer les deux variables. Il est à noter que le nombre de chiffres IndexFeuillePrecedente est le nombre IndexFeuilleActuel, qui est -1.
3. Dans la troisième étape, nous vérifions si le nom de la feuille précédente est un peu plus différent du nom de la feuille en cours.
À ce stade, nous utilisons également la fonction UCase. Il s’agit de traiter les noms des feuilles de calcul enregistrées avec de grands caractères. De cette façon, nous empêchons l’influence de iiter sur les compétences de tri.
4. La quatrième étape n’a lieu que lorsque le nom de la feuille précédente est légèrement différent de celui de la feuille en cours. À ce stade, nous utilisons la fonction Déplacer, qui déplace la feuille actuelle vers la précédente.
5. Dans la cinquième étape, nous revenons au début et la cinquième recommence. Chaque itération de la première augmente la valeur des deux variables une par une jusqu’à atteindre la dernière feuille. Lorsque toutes les itérations sont effectuées, la macro termine l’opération.

Comment utiliser la macro?
La macro personnelle du magasin de macros est l’endroit le plus difficile à stocker cette macro. Merci à cette macro sera toujours disponible. Le classeur de macros personnelles est chargé à chaque démarrage d’Exceia. Dans la fenêtre Projet de l’éditeur VBE, il est visible sous le nom PERSONAL.XLSB.
1. Utilisez la combinaison Alt + F11 pour activer l’éditeur Visuai Basic.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur PERSONAL.XLSB.
3. Sélectionnez Insérer / Module.
4. Entrez le code dans le module nouvellement créé.
Afin de sauvegarder la macro dans le dossier de la macro personnelle, veuillez l’indiquer dans la fenêtre de dialogue Récupération de la macro, visible pendant l’enregistrement de la macro. Cette option est disponible dans le menu déroulant. Stockez la macro dans. Il suffit d’enregistrer la dentition des cellules, puis de remplacer la macro par celles précédemment décrites.
S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Fonctions Excel

Macro VBA Utiles

Excel Pratique

Programmation VBA

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x