Regroupement des feuilles de calcul par couleur avec Excel VBA

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éé.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x