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).Name) < 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.

Trier les feuilles de calcul dans Excel - Démo

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 remplacer le signe < (inférieur à) par le signe > (supérieur à).

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

'This code will sort the worksheets alphabetically
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("Select Yes for Ascending Order and No for Descending Order", vbYesNoCancel)
ShCount = Sheets.Count
For 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)
    End If
ElseIf SortOrder = vbNo Then
    If UCase(Sheets(j).Name) > UCase(Sheets(i).Name) Then
    Sheets(j).Move before:=Sheets(i)
    End If
End If
Next j
Next 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.

Boîte de message lors du tri des feuilles de calcul dans Excel

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ù cela vous donnera le mauvais résultat est lorsque vous avez des noms d’onglets tels que Q1 2018, Q2 2018, Q1 2019, Q2 2019. Idéalement, vous voudriez que tous les onglets pour les mêmes années soient ensemble, mais ce ne sera pas le cas. Cela ne doit pas être fait car le premier trimestre 2019 sera placé avant le deuxième trimestre 2018.

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).Trier les feuilles de calcul dans Excel - Onglet Développeur dans le ruban
  2. Cliquez sur l’option Visual Basic. Cela ouvrira l’éditeur VB dans le backend.Cliquez sur Visual Basic pour ouvrir l'éditeur VB
  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.Insérer un module dans l'éditeur VB
  5. Copiez et collez le code dans la fenêtre du module.Copiez et collez le code pour trier les onglets de la feuille de calcul dans Excel

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.

You can read all about running the macro here - How to Run a Macro in Excel (or watch the video below).
Vous aimerez peut-être également les didacticiels Excel/VBA suivants :

Pour protéger votre fils, votre mari ou votre espion, vous pouvez télécharger cette application

X