Comment trier les feuilles de calcul dans Excel à l'aide de VBA (par ordre alphabétique)

Si vous travaillez avec de nombreuses feuilles de calcul dans Excel, vous savez que leur gestion peut devenir un problème.

Une fois que vous avez plusieurs feuilles de calcul, vous devez les organiser manuellement.

À quel point cela aurait-il été facile s'il y avait eu un moyen de trier rapidement les feuilles de calcul dans Excel.

Bien qu'il n'y ait pas de fonctionnalité intégrée pour le faire, cela peut être fait (facilement) à l'aide de VBA.

Dans ce tutoriel, je vais vous donner le code et les étapes exactes à suivre pour trier les feuilles de calcul dans Excel.

Vous pouvez modifier le code pour trier les feuilles de calcul dans un ordre croissant ou décroissant.

Code VBA pour trier les feuilles de calcul dans Excel

Vous trouverez ci-dessous le code qui triera les feuilles de calcul par ordre alphabétique dès que vous l'exécuterez.

Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase(Sheets(j). Nom) < UCase(Sheets(i).Name) Then Sheets(j).Move before :=Sheets(i) End If Next j Next i Application.ScreenUpdating = True End Sub

Ce qui précède est un code simple qui utilise les boucles For Next pour analyser chaque feuille de calcul par rapport à toutes les feuilles de calcul.

Il compare le nom d'une feuille de calcul à toutes les feuilles de calcul et la déplace en fonction de son nom dans l'ordre alphabétique.

Il passe ensuite à la feuille de calcul suivante, puis la compare à toutes les feuilles de calcul.

Ce processus est répété pour toutes les feuilles de calcul et le résultat final est un ordre de feuille de calcul trié par ordre alphabétique.

Quelques points importants à savoir sur ce code :

  1. La fonction UCase est utilisée pour s'assurer que les minuscules et les majuscules ne sont pas traitées différemment.
  2. La valeur de Application.ScreenUpdating est définie sur False au début du code et remplacée par True à la fin du code. Cela garantit que pendant l'exécution du code, vous ne le voyez pas se produire à l'écran. Cela permet également d'accélérer l'exécution du code.

Si vous souhaitez trier les feuilles de calcul par ordre décroissant, il vous suffit de modifier le signe (supérieur à).

Le code ci-dessous trierait les feuilles de calcul par ordre décroissant :

'Ce code triera les feuilles de calcul par ordre alphabétique Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase(Sheets(j).Name) > UCase(Sheets(i).Name) Then Sheets(j).Move before:=Sheets(i) End If Next j Next i Application.ScreenUpdating = True End Sub

Vous pouvez également donner à l'utilisateur la possibilité de choisir s'il souhaite trier par ordre croissant/décroissant.

Le code ci-dessous afficherait une boîte de message et l'utilisateur peut sélectionner l'ordre à trier.

Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer Dim SortOrder As VbMsgBoxResult SortOrder = MsgBox("Sélectionnez Oui pour l'ordre croissant et Non pour l'ordre décroissant", vbYesNoCancel) ShCount = Sheets. i = 1 To ShCount - 1 For j = i + 1 To ShCount If SortOrder = vbYes Then If UCase(Sheets(j).Name) UCase(Sheets(i).Name) Then Sheets(j).Move before:=Sheets (i) Fin si fin si suivant j suivant i Application.ScreenUpdating = True End Sub

Le code ci-dessus, lorsqu'il est exécuté, affiche un message comme indiqué ci-dessous. Il trie en fonction de la sélection (Oui pour Croissant et Non pour Décroissant).

Si vous cliquez sur Annuler, le code s'arrête et rien ne se passe.

Noter: Le tri ne peut pas être annulé. Si vous souhaitez également conserver la commande d'origine, faites une copie du classeur.

Un mot d'avertissement: Le code ci-dessus fonctionne dans la plupart des cas. Un domaine où il vous donnera le mauvais résultat est lorsque vous avez des noms d'onglets tels que Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022. Idéalement, vous voudriez que tous les onglets pour les mêmes années soient ensemble, mais cela ne sera pas fait car Q12021-2022 sera placé avant Q22021-2022.

Où mettre le code VBA

Excel a un backend VBA appelé éditeur VBA.

Vous devez copier et coller le code VBA dans la fenêtre de code du module VB Editor.

Voici les étapes à suivre :

  1. Cliquez sur l'onglet "Développeur". (Vous ne voyez pas l'onglet développeur ? Cliquez ici pour savoir comment l'obtenir).
  2. Cliquez sur l'option Visual Basic. Cela ouvrira l'éditeur VB dans le backend.
  3. Dans le volet Explorateur de projets de l'éditeur VB, cliquez avec le bouton droit sur n'importe quel objet du classeur dans lequel vous souhaitez insérer le code. (Si vous ne voyez pas l'explorateur de projet, allez dans l'onglet "Affichage" et cliquez sur "Explorateur de projet".)
  4. Allez dans Insérer et cliquez sur Module. Cela insérera un objet module pour votre classeur.
  5. Copiez et collez le code dans la fenêtre du module.

Comment exécuter le code VBA

Dans Excel, il existe différentes manières d'exécuter le code VBA.

Vous pouvez exécuter le code directement à partir de Visual Basic Editor (également appelé VB Editor).

Vous pouvez insérer un bouton ou une forme dans la feuille de calcul et lui affecter la macro. Lorsque vous cliquez sur le bouton, la macro s'exécute instantanément.

Vous pouvez également ajouter la macro à la barre d'outils d'accès rapide (QAT). Désormais, chaque fois que vous devez trier les onglets de la feuille de calcul, vous pouvez simplement cliquer sur l'icône du code de macro dans le QAT.

Vous pouvez tout lire sur l'exécution de la macro ici - Comment exécuter une macro dans Excel (ou regardez la vidéo ci-dessous).
Vous aimerez peut-être également les didacticiels Excel/VBA suivants :

  • Comment trier les données dans Excel en utilisant VBA.
  • Trier automatiquement les données par ordre alphabétique à l'aide de la formule.
  • Comment faire un tri de données à plusieurs niveaux dans Excel.
  • Une introduction aux options de tri de données Excel.
  • Filtre automatique Excel VBA : un guide complet avec des exemples
  • Comment regrouper des feuilles de calcul dans Excel
  • Comment retourner des données dans Excel

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave