Beaucoup d’entre nous utilisent des couleurs pour étiqueter les feuilles. Grâce au marquage de deux cartes de la même couleur, vous pouvez identifier des feuilles dont les données sont liées les unes aux autres. La macro décrite ci-dessous regroupe les feuilles en fonction des couleurs utilisées pour les marquer.
Comment ca marche?
Il peut sembler que le tri ou le regroupement soit impossible, mais Excel le permet. Chaque couleur a un numéro d’index attribué. Le nombre indice de couleur claire est 36 et la couleur marron est 42.
La macro effectue une itération pour les feuilles suivantes du classeur, en faisant correspondre la couleur (et plus particulièrement son numéro d’index) de la feuille en cours à la précédente. Si la feuille précédente a la même couleur que celle en cours, la macro déplace la feuille en cours vers la précédente. Une fois toutes les itérations effectuées, les feuilles sont regroupées en fonction des couleurs de leurs onglets.
Sub RegrouperFeuillesParCouleur() 'Étape 1: Déclaration des variables Dim IndexFeuilleActuel As Integer Dim IndexFeuillePrecedente As Integer 'Étape 2: Démarrez le compteur et démarrez la boucle For IndexFeuilleActuel = 1 To Sheets.Count For IndexFeuillePrecedente = 1 To IndexFeuilleActuel - 1 'Étape 3: Comparaison de la feuille de calcul actuelle et précédente If Sheets(IndexFeuillePrecedente).Tab.ColorIndex = _ Sheets(IndexFeuilleActuel ).Tab.ColorIndex Then 'Étape 4: Déplacement de la feuille actuelle avant la précédente Sheets(IndexFeuillePrecedente).Move _ Before:=Sheets(IndexFeuilleActuel) End If 'Étape 5: La boucle commence l'itération suivante Next IndexFeuillePrecedente Next IndexFeuilleActuel End Sub
Commentaires
1. Dans la première étape, deux variables numériques sont décodées. La variable IndexFeuilleActuel stocke le numéro de feuille de l’itération actuelle et la variable IndexFeuillePrecedente – le numéro de feuille de l’itération précédente.
2. Dans la deuxième étape, l’itération des deux variables commence à être déduite. Il est à noter que le nombre de chiffres IndexFeuillePrecedente est le nombre IndexFeuilleActuel, qui est -1.
3. Dans la troisième étape, la macro vérifie si l’indice de couleur de la feuille précédente est identique à celui de la feuille en cours. Faites attention à l’utilisation de la méthode Tab.ColorIndex.
4. La quatrième étape n’a lieu que lorsque l’indice de couleur de la feuille précédente est identique au coefficient de la feuille en cours. À ce stade, la macro utilise la fonction Move pour déplacer la feuille actuelle vers la précédente.
5. À l’étape cinq, la macro revient au début et la boucle recommence. Chaque itération de la première augmente la valeur des deux variables une par une jusqu’à atteindre la dernière feuille. Lorsque toutes les itérations sont démarrées, la macro termine l’opération.
Comment utiliser la macro?
La macro personnelle du magasin de macros est l’endroit le plus difficile à stocker cette macro. Merci à cette macro sera toujours disponible. Un classeur de macros personnelles est chargé à chaque démarrage d’Excel. Dans la fenêtre Projet de l’éditeur VBE, il s’appelle PERSONAL.XLSB.
1. Utilisez la combinaison Alt + F11 pour activer l’éditeur Visuai Basic.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur PERSONAL.XLSB.
3. Sélectionnez Insérer / Module dans le menu.
4. Entrez le code dans le module nouvellement créé.