Comment trier les feuilles de calcul sur Excel (tri aléatoire ou alphabétique) ?

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Dans ce tutoriel, je vais vous montrer comment automatiser l’organisation des onglets au sein du classeur en suivant un ordre aléatoire ou alphabétique, de manière totalement automatique, en appuyant sur un simple bouton.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

 

1. Introduction

Comme nous venons de le voir, nous allons maintenant découvrir comment trier rapidement les feuilles de calcul du classeur, en appuyant sur un simple bouton.

Évidemment, Excel ne propose pas de fonctionnalité de ce type par défaut, nous allons donc devoir coder de toutes petites macro-commandes en VBA pour y parvenir.

Bien entendu, pour que ce tutoriel soit accessible pour tout le monde, même si vous n’avez aucune notion dans le développement en VBA, nous allons détailler chacune des lignes pas à pas.

Mais, si ce tutoriel vous donne envie d’en savoir plus sur le langage VBA, et sur toutes les possibilités d’amélioration des fonctionnalités proposées par Excel, vous pouvez découvrir mon livre dédié à ce langage en cliquant ici.

 

2. VBA et la notion d’objets

Pour commencer, nous allons chercher à trier les feuilles de calculs du classeur de manière aléatoire.

Cela nous permettra en effet de découvrir en douceur comment contrôler l’objet Worksheet en VBA.

Mais tout d’abord, revenons sur cette notion d’objet.

Il faut en effet savoir que le langage VBA est dit « orienté objet ».

Pour faire simple, comprenez par là que celui-ci nous permet d’agir sur des briques de fonctionnalités reprenant un certain nombre de fonctionnalités que nous appelons des propriétés (paramètres de l’objet) et des méthodes (actions à effectuer par l’objet).

L’objet principal est l’objet nommé « Application », il permet de gérer Excel, puisque nous développons une macro VBA d’Excel, mais si nous étions sur une autre application, telle que Word ou PowerPoint, l’objet « Application » permettra de gérer celle-ci.

De cet objet principal « Application » découle toute une série d’objets et de sous-objets permettant chacun de contrôler différents aspects d’Excel.

Ici, nous allons nous intéresser à l’objet « Workbook » qui gère le classeur et à son sous-objet « Worksheet » qui permet quant à lui de gérer les feuilles de calculs.

 

3. Comment trier les feuilles de calcul de manière aléatoire

Après ce rapide tour de présentation de la notion d’objet, nous pouvons maintenant nous attaquer au sujet qui nous intéresse ici : créer notre macro pour trier les feuilles de calcul.

Tout d’abord, pour lancer VBE, l’outil qui permet de développer des macros en VBA.

Pour le lancer, il existe plusieurs méthodes, dont la plus simple et la plus rapide consiste à utiliser le raccourci clavier [Alt]+[F11] :

Excel formation - trier feuilles - 01

VBE se lance alors directement sur le projet en cours, c’est-à-dire le classeur ouvert au moment où nous l’avons lancé.

Pour créer notre macro, nous allons insérer un nouveau module, qui est une feuille blanche dans laquelle nous allons pouvoir saisir des lignes de code.

Pour cela, nous nous rendons dans le menu Insertion > Module :

Excel formation - trier feuilles - 02

Une fois le module inséré, pour y ajouter notre macro, nous saisissons le mot-clé « Sub », suivi du nom de la macro, ici « triFeuilleAleatoire » :

Excel formation - trier feuilles - 03

Lorsque nous validons en appuyant sur la touche [Entrée], Excel ajoute la ligne « End Sub » qui marque la fin de la macro, et tout ce que nous allons saisir entre ces deux lignes va s’exécuter à chaque fois que nous appellerons cette macro.

Ensuite, nous allons créer un objet Worksheet dans cette macro, qui permettra comme nous l’avons vu dans la partie précédente de manipuler une feuille de calculs.

Pour créer un objet, ou une variable, nous utilisons le mot-clé « Dim », suivi du nom que nous souhaitons lui donner et enfin du type de ce dernier :

Excel formation - trier feuilles - 04

Le mot-clé « As », permet ici de définir que l’objet feuille est de type Worksheet.

Ensuite, nous allons nous servir de cet objet pour passer en revue toutes les feuilles du classeur en utilisant une boucle For Each.

Une boucle est un outil de programmation qui permet de répéter une opération un nombre défini de fois, ici jusqu’à ce que l’objet feuille ait passé en revue toutes les feuilles du classeur.

Pour en savoir plus sur la boucle For Each, vous pouvez consulter l’article dédié en cliquant ici.

   For Each feuille In ActiveWorkbook.Worksheets
    
    Next

Ensuite, nous allons créer une nouvelle variable, dans laquelle nous allons enregistrer la position à donner à la feuille, laquelle correspondra à un nombre aléatoire compris entre 1 et le nombre de feuilles contenues dans le classeur :

        Dim position As Integer
        position = Int((ActiveWorkbook.Worksheets.Count *  Rnd) + 1)

Pour obtenir ce nombre, nous utilisons la fonction VBA Rnd() qui permet de tirer un nombre décimal compris entre 0 et 1 que nous multiplions avec le nombre de feuilles totales du classeur que nous obtenons avec la propriété Count de l’objet Worksheet.

Ensuite, nous ajoutons 1 à ce résultat et nous encapsulons ce résultat dans la fonction Int() qui permet de n’en conserver que la partie entière.

Cela étant fait, il ne reste plus qu’à déplacer la feuille avec la méthode Move :

        feuille.Move  before:=ActiveWorkbook.Worksheets(position)

Ici nous déplaçons la feuille juste avant celle qui est positionnée à la position retournée par la valeur de la variable position.

Pour tester la macro, il suffit d’appuyer sur la touche [F5] et d’aller observer l’ordre des feuilles de calcul sur le classeur :

Excel formation - trier feuilles - 05

 

4. Comment trier les feuilles de calcul de manière alphabétique

Maintenant que nous venons de voir comment classer les feuilles de calcul en fonction d’un critère aléatoire, voyons comment les reclasser par ordre alphabétique.

Étant donné que nous allons partir de la même base, nous pouvons effectuer un simple copier-coller de la macro précédente, sur laquelle nous viendrons modifier le nom en triFeuilleAlphabetique, puis nous supprimons le contenu de la boucle For Each :

Sub triFeuilleAlphabetique()
    Dim feuille As Worksheet
    
    For Each feuille In  ActiveWorkbook.Worksheets
        
    Next
    
End Sub

Ensuite, à l’intérieur de cette boucle, nous allons à nouveau effectuer une revue de toutes les feuilles, que nous stockerons cette fois-ci dans une seconde variable feuille2 (nous créons donc une seconde variable pour celle-ci) :

Sub triFeuilleAlphabetique()
    Dim feuille As Worksheet, feuille2 As Worksheet
    
    For Each feuille In  ActiveWorkbook.Worksheets
        For Each feuille2 In ActiveWorkbook.Worksheets
        
        Next
    Next
    
End Sub

De cette manière, il ne reste plus qu’à comparer le nom de ces deux variables feuille et feuille2, et lorsque la seconde est supérieure à la première suivant un ordre alphabétique, alors nous pouvons déplacer feuille juste avant feuille2 :

    For Each feuille In  ActiveWorkbook.Worksheets
        For Each feuille2 In  ActiveWorkbook.Worksheets
            If feuille2.Name > feuille.Name Then
                feuille.Move before:=feuille2
            End If
        Next
    Next

Avant de pouvoir tester la macro, nous allons juste nous assurer de sortir de la boucle encapsulée avec une instruction Exit For qui va éviter de continuer l’analyse en vain :

    For Each feuille In  ActiveWorkbook.Worksheets
        For Each feuille2 In  ActiveWorkbook.Worksheets
            If feuille2.Name > feuille.Name Then
                feuille.Move before:=feuille2
                Exit For
            End If
        Next
    Next

Puis, nous appuyons sur la touche [F5] pour vérifier que les onglets sont bien ordonnés suivant l’ordre alphabétique :

Excel formation - trier feuilles - 06

 

 



Articles qui pourraient vous intéresser

COMMENT EFFACER ET PERSONNALISER LA LISTE DES DOCUMENTS RÉCENTS D’EXCEL (la vraie méthode)
Comment compter le nombre de cellules contenant un nombre de caractères sur Excel sans VBA ?
Comment transformer des cellules en image dynamique sur Excel ? Découvrez la puissance de l’appareil photo !
Comment créer un générateur de mots de passe sécurisés et personnalisés sur Excel ?
Découvrir la fonction SI() par l’exemple sur Excel (5 exemples à la difficulté progressive)
Comment créer un formulaire VBA sans Userform ? (La méthode facile sur Excel)
Comment extraire un nombre à partir d’un texte automatiquement sur Excel ?
Comment insérer une série de mini-graphiques dans des cellules Excel (Découvrons les miniGraphs) ?
Comment créer un graphique dans une cellule sur Excel (Découvrons les mini-graphiques Sparkline) ?
Comment trier les feuilles de calcul sur Excel (tri aléatoire ou alphabétique) ?
Comment exporter et importer des modules VBA d'Excel ?
Comment connaître la ligne suivante après un tableau en VBA Excel ?

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2022 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.