Il est souvent nécessaire de supprimer toutes les feuilles, sauf celles qui sont actives. Dans ce cas, vous pouvez utiliser la macro ci-dessous.
C’est une boucle qui vérifie séquentiellement chaque feuille et trie leurs noms en fonction du nom de la feuille active. Si une feuille portant un nom différent est trouvée, elle est supprimée. Faites attention à l’utilisation de la méthode DisplayAlerts à la quatrième étape car vous n’avez donc pas besoin de confirmer la suppression de chaque feuille.
Sub SuppressionToutesFeuilles () 'Étape 1: Déclarez la variable Dim mafeuille As Worksheet 'Étape 2: Commencez la boucle pour toutes les feuilles For Each mafeuille In ThisWorkbook.Worksheets 'Étape 3: Vérifiez le nom de chaque feuille If mafeuille.Name <> ThisWorkbook.ActiveSheet.Name Then 'Étape 4: Désactivez les messages et supprimez la feuille Application.DisplayAlerts = False mafeuille.Delete Application.DisplayAlerts = True End If 'Étape 5: Passer à la feuille suivante Suivant Next mafeuille End Sub
Commentaires
1. Dans un premier temps, une variable nommée mafeuille est déclarée, ce qui créera un conteneur en mémoire pour chaque feuille qui sera traitée dans la boucle.
2. Dans la deuxième étape, l’action démarre une boucle qui demande à Excel d’analyser toutes les feuilles du classeur. Il y a une différence entre l’utilisation de ThisWorkbook et ActiveWorkbook. L’objet ThisWorkbook fait référence à un classeur contenant le code. D’autre part, l’objet Acti veWorkbook s’applique au classeur actif.
Par conséquent, les mêmes objets sont renvoyés, mais si le classeur dans lequel le code a été exécuté n’est pas actif, les résultats seront différents. Dans notre cas, nous ne voulons pas risquer de retirer des feuilles d’autres classeurs, c’est pourquoi nous allons utiliser la méthode ThisWorkbook.
3. Dans cette étape, la macro fait simplement correspondre le nom de la feuille de calcul active avec le nom de la feuille de calcul traitée par la boucle.
4. Si des noms sont requis, l’une des feuilles est supprimée. Comme mentionné précédemment, en utilisant la méthode DisplayAlerts, nous avons compilé des messages dans Excel.
5. À l’étape 5, passez à la feuille suivante. Après avoir analysé toutes les feuilles du classeur de macros, le travail est terminé.
Comment utiliser la macro?
Pour implémenter cette macro, vous pouvez copier et coller son code dans un module standard. À cette fin:
1. Utilisez les touches Alt + F11 pour activer Visual Basic Editor.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur le nom du projet ou de la feuille de calcul.
3. Sélectionnez Insérer / Module dans le menu.
4. Tapez ou collez le code dans le module nouvellement créé.
NOTE
Il est à noter que lorsque vous utilisez l’objet ThisWorkbook au lieu de ActiveWorkbook, vous ne pouvez pas exécuter de macros dans le dossier des macros personnelles. Cela est dû au fait que l’objet ThisWorkbook est redéfini non sur le classeur dans lequel la macro doit être exécutée, mais plutôt sur le classeur de macros personnelles.