Les utilisateurs d’excel aiment donner des noms aux plages de cellules. Un classeur dans lequel des dizaines de cellules et de plages ont des noms individuels n’a rien d’extraordinaire. Cependant, de telles procédures peuvent provoquer des erreurs dans le code vba. C’est pourquoi il est parfois utile de savoir où se trouve la plage donnée. La macro ci-dessous entraîne le remplissage en jaune des cellules de toutes les plages nommées du classeur.
Comment ca marche?
La boucle récupère séquentiellement les noms de toutes les plages décrites. Une fois le nom capturé, la couleur des cellules de la plage est modifiée.
Sub SelectionFormatage () 'Étape 1: Déclaration des variables Dim NomPlage As Name Dim PlageSurligner As Range 'Étape 2: Si une erreur survient, Excel continuera On Error Resume Next 'Étape 3: commencez la boucle pour chaque nom de plage For Each NomPlage In ActiveWorkbook.Names 'Étape 4: Récupérez la propriété RefersToRange Set PlageSurligner = NomPlage.RefersToRange 'Étape 5: Coloration des plages nommées PlageSurligner.Interior.ColorIndex = 46 'Étape 6: La boucle passe à la plage suivante Next NomPlage End Sub
Commentaires
1. Tout d’abord, deux variables d’objet sont déclarées. La première variable, NomPlage, stocke les noms des plages suivantes de la collection Names traitée dans la boucle. La deuxième variable appelée PlageSurligner stocke les données de plage stockées par la variable NomPlage.
2. Les utilisateurs d’Excel peuvent aussi attribuer des « noms » à des éléments qui ne sont pas des plages (telles que des états ou des formules). N’oubliez pas que nous devons prédire qu’Excel renverra une erreur lorsque la propriété RefersRange ne contient pas la plage d’adresses des cellules. Par conséquent, dans cette étape, nous allons introduire les incitations selon lesquelles toute erreur sera ignorée et le code exécuté. Grâce à cela, nous serons sûrs que la macro ne s’arrêtera pas brusquement quand il rencontre une adresse de plage invalide.
3. Dans cette étape, la macro exécute une boucle qui traite tous les noms de plage de manière séquentielle dans la collection Names du classeur actif.
4. Lorsque la plage nommée est active, son adresse est téléchargée dans la variable PlageSurligner . Grâce à cela, toutes les propriétés utilisables pour formater les cellules dans le périmètre seront visibles.
5. À l’étape cinq, nous affectons la couleur aux cellules de la plage traitée.
6. Enfin, la boucle passe à la plage nommée suivante. Lorsque toutes les plages nommées passent par la boucle, la macro termine le balayage.
Comment utiliser la macro?
Le meilleur endroit pour stocker cette macro est le classeur de macros personnelles. 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, le fichier s’appellera PERSONAL.XLSB.
1. Utilisez les touches Alt + F11 pour activer Visual Basic Editor.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur PERSONAL.XLSB.
3. Sélectionnez Insérer / Module dans le menu.
4. Tapez ou collez le code.
Si vous ne pouvez pas voir le fichier PERSONAL.XLSB, cela signifie que vous ne l’avez pas encore créé. Enregistrez la macro et indiquez le classeur de macros personnelles comme emplacement de stockage.
Pour enregistrer la macro dans l’album de macros personnelles, sélectionnez-la dans la boîte de dialogue Relecture de la macro qui apparaît lors de l’enregistrement de la macro. Cette option est disponible dans la liste déroulante Store macro. Il suffit d’enregistrer le clic de plusieurs sociétés, puis de remplacer la macro par celle précédemment décrite.