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 remplir automatiquement des cellules d'un tableau Excel avec la complétion automatique
Comment regrouper (ou pas !) les dates d’un tableau croisé dynamique (TCD) sur Excel ?
Comment connecter Excel sur Internet, sans VBA ?
Comment traduire automatiquement des fonctions Excel dans leur version originale ?
Comment analyser les résultats d’un sondage ou questionnaire avec Excel ?
Comment utiliser la fonction SOMME.SI pour effectuer des recherches sur des textes sur Excel ?
Comment calculer et étudier des écarts budgétaires avec Excel ?
Comment verrouiller et protéger un objet (graphique, image, zone de texte…) sur Excel ?
Comment formater des dates correctement dans Excel ?
Comment protéger le formatage des cellules tout en autorisant la saisie de données dans Excel ?
Comment transformer une photo en tableau Excel ?
Comment créer un publipostage automatique avec Excel ? (sans Word !)

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2024 - 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.