Découvrir les plages nommées d’Excel : utilisation et intérêt !
Dans ce tutoriel, nous allons découvrir un outil très puissant d’Excel : les plages nommées. Celles-ci vont en effet permettre de donner un nom symbolique à une ou plusieurs cellules. Nous pourrons ensuite utiliser ce nom exprimé dans un langage compréhensif pour faire référence aux cellules, que ce soit pour les sélectionner, ou encore pour les utiliser dans des formules.
Téléchargement
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
Tutoriel Vidéo
Partie 1 : Appeler une cellule par son nom
Partie 2 : Les noms de cellules
Partie 3 : Des plages nommées dynamiques et intelligentes !
Partie 4 : Les plages nommées avec VBA !
1. Qu’est-ce qu’une cellule nommée ou une plage nommée ?
Dans Excel, pour pouvoir accéder rapidement aux données stockées dans les cellules, nous utilisons ce que nous appelons une référence.
La différence entre l’un et l’autre, c’est que dans le cas d’une référence absolue, si nous étendons la formule sur d’autres cellules de la feuille de calcul, les coordonnées resteront les mêmes.
C’est ce que nous pouvons identifier grâce à la présence du dollar (« $ »).
Mais il faut également savoir qu’il est possible d’utiliser ce que l’on appelle une cellule nommée (ou plus simplement un « nom »).
Dans ce cas-là, nous allons donner un nom à une cellule, et c’est à partir de ce nom, que nous ferons appel à celle-ci.
Cela nous permettra donc d’obtenir une méthode claire et ludique pour faire référence aux cellules.
Évidemment, il va également être possible de créer non pas une simple cellule nommée, mais directement une plage nommée constituée d’un ensemble de cellules, que celle-ci soit adjacentes ou non.
Ainsi, imaginons que souhaitions utiliser le taux de marge enregistré dans la cellule C8 pour l’utiliser dans une formule.
Nous pourrons accéder à celle-ci de plusieurs manières :
- Pour le premier cas, nous allons tout simplement utiliser les coordonnées de la cellule, c’est-à-dire C4
- Pour le second cas, nous allons faire référence à celle-ci avec une référence absolue en insérant des $ : $C$4
- Et enfin, pour le dernier cas - qui est justement celui qui nous intéresse ici - nous allons nommer la cellule.
Pour cela, nous allons tout simplement saisir le nom à lui donner dans la zone des noms, afin de créer la cellule nommée de manière très rapide : « _tauxMarge » :
Et c’est ensuite en utilisant ce nom « _tauxMarge » que nous pourrons accéder aux informations de la cellule :
Maintenant, si nous étendons les trois formules sur les cellules située en dessous, nous allons pouvoir faire un certain nombre de constatations :
- Dans le premier cas, lorsque nous utilisons une référence relative, la formule ne sera plus correcte étant donné qu’Excel va déployer la formule en décalant également la référence de la cellule dans laquelle se trouve le taux de marge, le résultat sera donc erroné.
- Dans le cas de la référence absolue, la formule restera correcte et le résultat correspondra effectivement à la marge de brut dégagée par l’entreprise.
- Et enfin, dans le troisième et dernier cas, lorsque nous utilisons une cellule nommée, alors le résultat sera toujours correct, étant donné que celui-ci est égal à celui que nous avons juste avant. Une cellule nommée est donc une référence absolue.
Mais en plus de ça, si nous regardons le détail de la formule, nous allons pouvoir retrouver immédiatement à quoi correspond la cellule que nous avons utilisé, c’est-à-dire au taux de marge.
Ici, le cas est très simple, mais nous pouvons imaginer avoir besoin de créer des applications Excel beaucoup plus complexes. Et dans ce cas-là, il sera bien plus intéressant de savoir à quoi font référence les différentes cellules utilisées dans les formules, sans avoir besoin d’aller retourner sur celle-ci, en sachant qu’il est possible qu’elle soit sur une autre feuille de calcul.
2. Création des cellules et des plages nommées
Comme nous venons de le voir dans la partie précédente, la création d’une cellule nommée est très simple.
Il suffit en effet de sélectionner une cellule, puis de saisir le nom dans la zone des noms, situé es en haut à gauche, juste à côté de la barre des formules.
Si nous voulons créer une plage nommé constituée de plusieurs cellules, c’est exactement pareil : nous commençons par sélectionner les cellules en question, en sachant que nous pouvons évidemment utiliser des cellules qui ne sont pas adjacentes (dans ce cas, là, nous maintiendrons la touche [Ctrl] du clavier enfoncée) :
Au moment où nous allons saisir le nom de la cellule ou de la plage, nous allons devoir respecter un certain nombre de conventions :
- Tout d’abord, il ne doit pas y avoir d’espace dans le nom.
- Ensuite, le premier caractère doit obligatoirement être une lettre, un tiret de soulignement (« _ ») ou un antislash (« \ »). À partir du second caractère, il sera également possible d’utiliser des chiffres.
- Bien entendu, un nom de cellule ne peut pas correspondre à une référence de cellule (« A1 », « EE56 »…)
- Les noms « r » et « c » sont interdits, car ils désignent une ligne (« row » en anglais) et une colonne (« column »)
- L’utilisation des accents est autorisée, mais par convention, il vaut mieux les éviter lors de la création des noms de cellule.
- Afin, sachez que la casse n’est pas importante, donc « _tauxMarge » et « _TAUXMARGE » sont reconnus de la même manière, Excel procédera automatiquement à la correction.
Le fait de créer une cellule ou une plage nommée comme nous venons de le faire permet de créer rapidement un nom sur une cellule, mais la méthode conventionnelle consiste à utiliser le menu Formule et de cliquer sur le bouton « Définir un nom » :
Excel affiche alors une boîte de dialogue dans lequel nous allons tout d’abord pouvoir saisir le nom à donner à la plage de cellules, en respectant les conventions que nous en vues juste avant :
Ensuite, nous allons pouvoir définir la zone de fonctionnement du nom.
En effet, le nom peut être reconnu, soit au niveau du classeur, soit au niveau de la feuille de calcul.
L’intérêt d’utiliser une zone étendue au niveau du classeur, c’est que nous allons pouvoir utiliser la cellule nommée à n’importe quel endroit de celui-ci.
En revanche, étant donné que nous ne pouvons utiliser que des noms uniques, nous ne pourrons donc pas retrouver le même nom à plusieurs endroits du classeur.
C’est pourquoi nous pouvons choisir de limiter le champ de reconnaissance du nom uniquement à la feuille de calcul active, et donc dans ce cas-là nous pourrons utiliser un même nom sur différentes feuilles.
Ensuite, si nous le souhaitons, nous pouvons ajouter un commentaire facultatif qui nous permettra de donner des informations supplémentaires quant au nom que nous affectons à cellule ou à la plage de cellules.
Pour finir, nous allons voir, sélectionner la où les cellules que nous voulons affecter au nom, en sachant qu’Excel insère directement dans le champ correspondant, les références aux cellules qui étaient préalablement sélectionnées.
3. Comment modifier une plage nommée
Une fois que nous avons créé notre plage nommée, il est possible que nous ayons besoin de modifier celle-ci.
Cela nous permettra par exemple de changer le nom correspondant, ou alors de changer la référence aux cellules liées.
Pour cela nous allons nous rendre le menu « Formules » et cliquer sur le bouton « Gestionnaire de noms » afin de retrouver tous les noms disponibles sur le classeur :
Nous pouvons également afficher cette boîte de dialogue en utilisant le raccourci clavier [Ctrl]+[F3].
Ensuite, nous sélectionnons le nom afin de pouvoir effectuer les modifications voulues.
Une fois que celle-ci sont terminées, nous appuyons sur la coche verte afin de valider la modification des paramètres.
4. Comment créer des plages automatiquement en fonction des en-têtes de tableau
Pour cela, nous commençons par sélectionner les cellules du tableau, puis nous nous rendons dans le menu Formule et nous cliquons sur le bouton « Depuis sélection » :
Excel nous présente alors une boîte de dialogue qui nous demande de paramétrer où se trouvent les noms qui vont permettre de définir les plages nommées du tableau.
Nous sélectionnons ici la « Ligne du haut » et la « Colonne de gauche » :
Maintenant, nous allons pouvoir faire référence aux différentes données du tableau en utilisant les noms.
Pour cela, il suffit de sélectionner une ligne ou une colonne pour retrouver le nom qui correspond dans la zone des noms :
Nous allons maintenant voir dans la partie suivante, comment exploiter ses données.
5. Comment sélectionner une plage nommée
Une fois que nous avons créé nos plages nommées sur notre feuille de calcul, nous allons pouvoir les sélectionner de manière très rapide.
En effet, comme nous venons de le voir, il suffit pour cela de dérouler la liste de la zone des noms afin de retrouver tous les noms disponibles sur la feuille de calculs active, c’est-à-dire soit les noms ayant pour zone la feuille de calcul active, soit le classeur en entier.
Lorsque nous cliquons sur l’un des noms, Excel va alors sélectionner les cellules liées.
Nous pouvons également retrouver l’ensemble des noms qui ont été créés en nous rendant dans le menu Formule et en cliquant sur « Gestionnaire des noms ».
Ici, nous pouvons également retrouver les zones sur lesquelles les différents noms vont être connus.
Une autre option pour retrouver rapidement des cellules affectées à un nom consiste à utiliser la boîte de dialogue « Atteindre », que nous retrouvons dans le menu Accueil > Rechercher et sélectionner. Nous pouvons également l’afficher à l’écran en appuyant sur la touche [F5] :
Cette boîte de dialogue nous présente l’ensemble des noms disponibles sur tous les classeurs ouverts, il suffit de sélectionner celui-ci qui nous intéresse, puis de cliquer sur [OK] pour sélectionner les cellules liées.
Évidemment l’intérêt d’utiliser les noms de cellules ne se limite pas uniquement à la sélectionner des cellules. Cet outil va en effet nous permettre de construire des formules élaborées et facilement compréhensibles. Ce sujet tutoriel complet dédié que vous retrouverez ici, très bien bientôt.
6. Comment insérer des noms dans les formules
Comme vous pouvez vous en douter, le fait de créer des noms ne va pas uniquement nous permettre de sélectionner les cellules très rapidement.
Cela va également nous permettre d'utiliser ces plages nommées directement dans des formules.
Pour cela, il suffira de saisir les noms correspondant à la place des coordonnées des cellules que nous voulons utiliser dans les formules.
Pour cet exemple, nous allons souhaiter calculer le montant total des ventes réalisées au cours de l’année :
Ensuite, pour obtenir le montant qui correspond, nous allons appeler la fonction SOMME(), et en tant qu’argument, nous allons saisir le nom que nous venons de créer, à savoir « _ventes » :
=SOMME(Ventes_2020)
Ici, le fait d’avoir fait commencer le nom par un « _ » va nous permet de retrouver très rapidement la liste de tous les noms en tapant tout simplement ce signe.
consisteUne autre astuce qui permet de retrouver rapidement un nom lorsque nous sommes en train de rédiger une formule à utiliser le menu Formule et de dérouler la liste « Dans un formule ». Nous pouvons ensuite sélectionner directement le nom à insérer :
Il est également possible d’appuyer sur la touche [F3] en cours de saisie pour afficher une boîte de dialogue dans laquelle nous allons retrouver tous les noms créés et disponibles sur la feuille de calcul :
Il suffit alors de double cliquer sur le nom qui nous intéresse pour qu’Excel l’ajoute dans la formule.
Ensuite, nous pouvons valider la formule en appuyant sur le la touche [Entrée] du clavier.
Si nous reprenons les noms que nous avions créés automatiquement sur le tableau de suivi des ventes, nous allons maintenant pouvoir utiliser une fonctionnalité peu connue d’Excel qui consiste à récupérer les valeurs situées à l’intersection de plage de cellules.
Ici, imaginons que vous souhaitiez en retrouver les ventes qui correspondent au mois de février 2021, il suffira de saisir la formule suivante : « Février Vente_2021 » :
=Février Ventes_2021
Si nous saisissons le nom du mois que nous souhaitons extraire dans une cellule, nous pourrons appeler ce mois en utilisant la fonction INDIRECT(), qui va alors se charger de convertir un texte en référence vers la plage de cellules :
=INDIRECT(A24) Ventes_2021
7. Plages nommées et formules matricielles
Lorsqu’un nom fait référence à une cellule seule, alors nous récupérer sa valeur simplement dans une autre cellule en utilisant le signe égal.
En revanche, si le nom est lié à un ensemble de plusieurs cellules, alors cette méthode retournera une erreur #VALEUR!, étant donné qu’une cellule ne peut pas afficher le résultat de plusieurs autres cellules directement.
En revanche, nous pouvons utiliser une formule matricielle qui permet justement de retourner un résultat sur plusieurs cellules.
Pour cela, nous commençons par sélectionner un nombre de cellules correspondant à la taille de la plage à afficher, puis nous saisissons la formule « =Année_2020 », et lorsque nous validons, nous appuyons en même temps sur les touches [Ctrl]+[Maj]+[Entrée] :
Excel encadre alors la formule entre des crochets, symbolisant une formule matricielle, et les résultats sont bien repris dans les cellules correspondantes.
{=Ventes_2020}
Nous noterons au passage que si nous avions sélectionné uniquement une cellule,
Excel nous aurait bien retourné le résultat de la cellule de la matrice de cellules liée au nom « Année_2020 », mais uniquement celle-ci.
En effet, si nous étendons la formule matricielle sur toutes les cellules de la colonne, alors celles-ci afficheront toutes les mêmes résultats. Excel dupliquera en effet uniquement le premier élément de chaque matrice :
Pour retrouver le résultat souhaité, il est en effet nécessaire de valider la formule matricielle sur toutes les cellules de destination.
Maintenant que nous avons bien compris le principe, nous pouvons créer des formules plus utiles, comme calculer le montant des CA mensuels moyens : {=( Année_2020+Année_2021+Année_2022)/3}
{=(Ventes_2020+Ventes_2021)/2}
8. Lier une constante à un nom
L’utilisation des plages nommées que nous venons de voir juste avant correspond à l’usage le plus courant que nous pouvons faire de cet outil, c’est-à-dire faire référence à une ou plusieurs cellules.
Mais nous pouvons également affecter une constante derrière un nom.
Pour cela, rendons-nous dans le menu Formules > Définir un nom.
Ici, nous saisissons les paramètres de manière classique, comme nous l’avons vu lors des exemples précédents, mais dans le champ « Fait référence à », nous allons saisir la valeur de la constante que nous souhaitons affecter au nom « =20% » :
9. Lier une formule à un nom
Pour finir, sachez qu’il est encore possible d’insérer une formule derrière un nom de cellule.
Ici, nous allons souhaiter obtenir le montant TTC correspondant au prix HT.
Pour cela, nous commençons par sélectionner la cellule située juste à droite de la cellule C10 dans laquelle se trouve le prix HT de la première ligne du tableau.
Ensuite, rendons-nous dans le menu Formules > Définir un nom.
Nous créons le nom « _montantTTC » et dans le champ « Fait référence à », nous saisissons la formule de calcul de la TVA « =C10*(1+20%) » :
Attention, si ici nous saisissons la référence à la cellule C10 sous la forme d’une référence absolue (par exemple en cliquant sur la cellule), alors le nom fera toujours référence à cette cellule.
C’est pourquoi, si nous étendons la formule sur toutes les cellules de la colonne, les montants TTC retournés seront tous identiques.
Pour régler ce problème, nous allons devoir revenir sur le paramétrage du nom en revenant dans le menu Formule > Gestionnaire de nom.
Ensuite, nous allons modifier le nom depuis le menu « Formules » en cliquant sur le bouton « Gestionnaire de noms » comme nous l’avons vu dans les parties précédentes.
Nous pouvons également afficher cette boîte de dialogue en utilisant le raccourci clavier [Ctrl]+[F3].
Après avoir identifié le nom « TTC », nous transformons la référence absolue en référence relative en supprimant les symboles « $ ».
Cela étant fait, nous appuyons sur la coche verte afin de valider la modification de la formule.
Les résultats sont maintenant corrects.
10. Comment créer une plage nommée dynamique ?
Maintenant que nous avons eu l’occasion de découvrir la gestion des plages nommées dans Excel, nous allons voir qu’il est également possible de créer des plages nommées dynamiques, c’est-à-dire que nous allons utiliser des formules pour récupérer les cellules liées à ces noms, lesquels pourront donc s’adapter au contexte d’utilisation.
Cela nous permettra par exemple d’adapter la plage des cellules dont il est question, en fonction du contenu de celle-ci.
10.1. Comment créer des plages nommées dynamiques
Ici nous allons par exemple souhaiter que la plage liste des articles nous référence tous les articles disponibles afin de pouvoir les intégrer, par exemple dans une liste déroulante :
Et pour cela nous allons pouvoir utiliser la fonction DECALER().
Pour commencer, nous allons nous rendre dans le gestionnaire des noms, que nous retrouvons depuis le menu « Formules », ou alors que nous pouvons lancer directement en utilisant le raccourci clavier [Ctrl]+[F3] :
Ici, nous allons choisir de créer un nouveau nom, que nous allons par exemple nommer « listeArticles » :
Nous allons définir que celui-ci peut être accessible de l’intégralité du classeur, puis nous allons tout d’abord définir que celui-ci fait référence aux cellules dans lesquelles se trouvent de nouveaux articles.
Ensuite, nous validons en appuyant sur OK.
De retour sur la feuille de calcul, nous allons maintenant insérer une liste déroulante en utilisant comme nous l’avons vu, dans le tutoriel dédié à la validation des données.
Pour cela, nous sélectionnons la cellule dans laquelle nous voulons intégrer la liste déroulante, puis nous allons nous rendre dans le menu « Accueil » et cliquer sur « Validation des données ».
Sur la base de dialogue qui s’affiche, nous choisissons de créer une liste à partir d’une « Liste » :
Puis nous allons sélectionner les coordonnées qui correspondent à nos articles en utilisant la plage nommée que nous venons de créer en insérant le symbole « = », puis en appuyant sur la touche [F3] pour afficher la liste de toutes les plages nommées disponibles. Il suffira ensuite de double cliquer sur le nom « listeArticles » :
Ensuite, nous pouvons valider en appuyant sur OK.
Maintenant, nous allons pouvoir constater que lorsque nous sélectionnons la cellule, un petit bouton apparaît à droite et lorsque nous cliquant sur celui-ci, nous allons retrouver la liste des articles que nous avons sélectionnés liée avec le nom « listeArticles » :
10.2. Rendre la liste déroulante dynamique
Maintenant, si nous ajoutons un nouvel article à la liste, nous pourrons constater que celui-ci ne se trouve pas directement intégré dans la liste déroulante.
Pour en tenir compte, nous allons devoir revenir dans la validation des données et modifier la référence de la cellule.
Si nous voulons que les prochains articles soient directement intégrés dans cette liste, nous pouvons choisir d’insérer une plage beaucoup plus grande, en allant par exemple jusqu’à la ligne 1500 :
Mais dans ce cas-là, nous aurons des espaces vides à la suite de la liste :
Et c’est là que la création d’une plage de cellules nommée dynamique va nous aider.
Pour cela, nous allons revenir dans le paramétrage de notre plage nommée, et nous allons remplacer celle-ci grâce par la fonction DECALER() :
=DECALER(excelformation.fr!$H$9;0;0;7)
En effet, cette fonction DECALER() permet de retourner une cellule en effectuant un décalage en ligne et en colonne à partir d’une cellule de départ, ici la cellule H9 dans laquelle se trouve le nom du premier fruit de la liste.
Mais, il faut également savoir que la fonction DECALER() peut aussi retourner non pas une simple cellule, mais directement une plage de plusieurs cellules, en utilisant les arguments
L’argument qui nous intéresse est ici le quatrième, à savoir la « Hauteur », lequel permet de spécifier le nombre de lignes de la plage que nous souhaitons générer.
Ici, étant donné que nous avons sept fruits dans notre liste, nous pouvons saisir directement le chiffre « 7 ».
Sauf que comme nous l’avons vu juste avant l’intérêt d’utiliser la fonction DECALER() c’est de rendre cette place de cellule dynamique.
Pour cela, nous allons pouvoir encapsuler la fonction NBVAL() qui permet en effet de dénombrer le nombre de cellules non nulles contenues dans une plage.
Ici, nous allons compter le nombre de cellules non nulles de la colonne H :
=DECALER(excelformation.fr!$H$9;0;0;NBVAL(excelformation.fr!$H:$H)-1)
Nous n’oublions de retirer une cellule au résultat obtenu afin de bien tenir compte de la cellule dans laquelle se trouve le libellé de la colonne « Liste des fruits ».
Maintenant, si nous revenons dans la liste déroulante, nous allons pouvoir retrouver tous les éléments de la liste, il n’y aura donc pas d’espaces vides.
Nous pouvons maintenant ajouter un nouvel élément à la suite de la liste des articles que nous retrouverons immédiatement dans la liste déroulante :
10.3. Création d’une plage dynamique avec un tableau de données structurées
Pour découvrir une autre astuce encore plus puissante et rapide à mettre en place, laquelle repose sur l’utilisation des tableaux de données structurées d’Excel, je vous invite à découvrir la troisième vidéo d’illustration de ce tutoriel
1. Les plages nommées avec VBA
Comme nous venons de le voir, une plage nommée est tout simplement un groupe d'une ou de plusieurs cellules que nous retrouvons dans une feuille de calcul à qui nous allons assigner un nom spécifique, puis c'est à partir de ce nom que nous pourrons interagir directement sur ces cellules, que ce soit pour récupérer leurs valeurs ou alors pour les modifier.
11.1. Comme utiliser une plage nommée en VBA ?
Pour utiliser la puissance des plages nommées directement dans une macro VBA, nous allons commencer par insérer un nouveau module de code dans le projet en nous rendant dans le menu Insertion, puis en cliquant sur « Module ».
Ensuite, nous allons insérer une nouvelle macro que nous allons appeler « test » :
Sub test()
End Sub
Maintenant, imaginons que nous souhaitions obtenir les valeurs de toutes les cellules qui se trouvent à l'intérieur de la plage des cellules « listeDates » :
Nous allons alors procéder de la manière suivante :
Tout d'abord, nous allons créer une nouvelle variable que nous allons appeler « cellule » et nous allons la typer en tant que « Range » (c'est-à-dire en tant que plage de cellules). Cette variable cellule va nous permettre de passer en revue toutes les cellules de la plage « listeDates ».
dim cellule as Range
Pour passer en revue une série de données à l'intérieur d'une donnée principale, nous allons pouvoir utiliser l'instruction « For Each ». Pour l’utiliser, nous allons donner le nom de la variable que nous allons vouloir utiliser et ensuite nous allons spécifier à l'intérieur de quelle plage de cellules se trouvent les données que nous voulons analyser en utilisant le mot clé « In », suivi donc du nom de cette plage des cellules. Pour cela, nous utilisons le nom de la plage des cellules entre guillemets, à la plage des coordonnées de celle-ci :
For Each cellule In Range("listeDates")
Next
Enfin, nous allons afficher la valeur de la cellule en cours de revue avec l’instruction MsgBox :
MsgBox cellule
Il ne reste plus qu’à appuyer sur la touche [F5] pour lancer la macro et qu’Excel nous affiche toutes les dates de la plage « listeDates » les unes à la suite des autres :
11.2. Pourquoi utiliser une plage nommée en VBA ?
L'intérêt d'utiliser une plage de cellules comme nous venons de le faire plutôt que ses coordonnées est multiple :
- Tout d'abord, comme vous pouvez le constater, cela permet d'accéder très facilement a des données. En effet, si nous n'avions pas créé notre liste de noms, il nous faudrait saisir donc les coordonnées de l'ensemble de la plage de cellules c'est-à-dire la plage directement dans la macro VBA (« Range("A9:A20") »).
- Les plages nommées permettent également de rectifier l’un des inconvénients de cette méthode de saisie des coordonnées. En effet, si nous venons modifier la structure de notre tableau en ajoutant par exemple une colonne au tout début de la feuille de calcul, lorsque nous allons lancer notre macro les cellules utilisées ne correspondront plus aux dates, car nous passons en effet de la colonne A à la colonne B. Il faut en effet savoir que lorsque nous travaillons en VBA il y a une déconnexion entre les coordonnées des cellules qui appartiennent uniquement à la feuille de calcul et le code VBA que nous avons développé. En revanche, en utilisant un nom de plage nommée, Excel va aller chercher non pas directement les cellules que nous avons saisies en dur, mais les cellules qui sont inscrites à l'intérieur de ce nom.
- Les plages nommées permettent donc de sécuriser les macros VBA, ce qui sera particulièrement pratique lorsque les utilisateurs du fichier Excel ne sont pas forcément les mêmes que ceux qui ont mis en place les macros commandes qu'il peut y avoir derrière
11.3. Comment récupérer une seule cellule de la plage nommée ?
Maintenant, imaginons que nous voulions uniquement récupérer la valeur du premier élément de la plage nommée ?
Pour cela, nous allons commencer par appeler l'intégralité de celle-ci avec la méthode découverte au-dessus, et pour appeler la première cellule de la plage, nous allons pouvoir utiliser la propriété Cells() qui va permettre de définir le numéro de ligne et de colonne où se trouve la cellule que nous voulons récupérer :
Sub test2()
MsgBox Range("listeDates").Cells(1, 1)
End Sub
Autre exemple, si nous souhaitons récupérer la troisième cellule (sur la troisième ligne de la plage « listeDates ») :
Sub test2()
MsgBox Range("listeDates").Cells(3, 1)
End Sub
11.4. Comment créer une plage nommée en VBA ?
À présent, nous allons vouloir intégrer au sein d'une plage nommée « listeMontants » toutes les cellules qui se trouvent aux coordonnées F9 jusque F20 :
Pour cela, nous commençons par appeler ces cellules grâce à l'instruction Range(), puis pour définir un nom à cette plage, il suffit d'appeler la propriété « Name » et d'utiliser le symbole « = » :
Sub test3()
Range("F9:F20").Name = "listeMontants"
End Sub
Puis, si nous revenons sur la feuille de calcul, nous pouvons voir que les cellules sélectionnées appartiennent maintenant à la plage nommée « listeMontant » :
11.5. Comment supprimer une plage nommée ?
Cela va maintenant nous permettre de découvrir le dernier exemple que nous allons mettre en place au sein de ce tutoriel : nous allons vouloir supprimer une plage nommée à partir de son nom.
Nous allons donc commencer par créer une nouvelle variable que nous allons appeler « nom » et que nous allons typer en tant que « Variant » :
Sub test4()
Dim nom As Variant
End Sub
Cela étant fait, nous allons pouvoir lister toutes les plages nommées de la feuille de calcul, lesquelles se trouvent dans la propriété « Names » :
For Each nom In Names
MsgBox nom
Next
Ensuite, nous allons pouvoir effectuer un test avec une instruction « If », afin de regarder si le nom de cette plage nommée que nous allons obtenir avec la propriété « Name » est égal au nom que nous souhaitons supprimer c'est-à-dire « listeMontants » :
If nom.Name = "listeMontants" Then
End If
Lorsque ce sera le cas, alors nous pourrons tout simplement appeler la propriété « Delete » de la variable « nom » pour supprimer le nom :
nom.Delete
11.6. Astuces et bonnes pratiques
Voici pour finir quelques astuces et bonnes pratiques à connaître lorsque vous travaillez avec des plages nommées en VBA :
- Tout d'abord, il faut savoir qu’il n'est pas possible d'utiliser certains caractères tels que le point (« . »), l'espace « » ou encore le signe dollar « $ » dans les noms de plage de cellules.
- Il faut également savoir qu'il est possible de créer des plages nommées à partir de cellules qui se trouvent sur une même feuille de calcul (ça, nous venons de le voir), mais également sur plusieurs feuilles de calcul issues donc d'un même classeur, ou même de plusieurs classeurs. Attention, dans ce cas-là, il faudra bien sûr spécifier à quelle feuille de calcul et à quel classeur Excel doit se référer pour gérer la plage nommée.
- Enfin, comme nous venons de le voir, si vous modifiez la structure ou les données de la feuille de calcul, il sera bien plus facile de mettre à jour le code VBA en utilisant les plages nommées plutôt que les coordonnées de cellules. Ces dernières seront en effet adaptées automatiquement sur toutes les modifications que nous en faire sur la feuille de calcul.